diff options
-rw-r--r-- | shell/ChangeLog | 17 | ||||
-rw-r--r-- | shell/Evolution-ShellComponentDnd.idl | 6 | ||||
-rw-r--r-- | shell/e-storage-set-view.c | 4 | ||||
-rw-r--r-- | shell/evolution-shell-component-dnd.c | 6 | ||||
-rw-r--r-- | shell/evolution-shell-component-dnd.h | 2 |
5 files changed, 31 insertions, 4 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index b210b83efc..7752aeae72 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,20 @@ +2001-05-04 Chris Toshok <toshok@ximian.com> + + * evolution-shell-component-dnd.c + (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion): + take a physical_uri and pass it to the callback. + (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop): + same. + + * evolution-shell-component-dnd.h: add physical_uri args to the + destination folder HandleMotion and HandleDrop types. + + * Evolution-ShellComponentDnd.idl: add "in string physical_uri" to + DestinationFolder::handleMotion and DestinationFolder::handleDrop. + + * e-storage-set-view.c (tree_drag_motion): pass the physical uri + of the folder to handleMotion. + 2001-05-04 Dan Winship <danw@ximian.com> * e-shell-offline-handler.c (update_dialog_clist_hash_foreach, diff --git a/shell/Evolution-ShellComponentDnd.idl b/shell/Evolution-ShellComponentDnd.idl index 41637f9456..37322e85db 100644 --- a/shell/Evolution-ShellComponentDnd.idl +++ b/shell/Evolution-ShellComponentDnd.idl @@ -79,13 +79,15 @@ module ShellComponentDnd { dropped; otherwise, it will return %TRUE and then set the @default_action and @non_default_action we want to be performed when the drop happens. */ - boolean handleMotion (in Context destination_context, + boolean handleMotion (in string physical_uri, + in Context destination_context, out Action suggested_action); /* Data is dropped. We are given the data for the dropped object, and we are supposed to perform the operation requested. */ - boolean handleDrop (in Context destination_context, + boolean handleDrop (in string physical_uri, + in Context destination_context, in Action action, in Data data); }; diff --git a/shell/e-storage-set-view.c b/shell/e-storage-set-view.c index d2097683d8..efac355c0c 100644 --- a/shell/e-storage-set-view.c +++ b/shell/e-storage-set-view.c @@ -1076,6 +1076,7 @@ tree_drag_motion (ETree *tree, unsigned int time) { EStorageSetView *storage_set_view; + EFolder *folder; EStorageSetViewPrivate *priv; EvolutionShellComponentClient *component_client; GNOME_Evolution_ShellComponentDnd_DestinationFolder destination_folder_interface; @@ -1111,7 +1112,10 @@ tree_drag_motion (ETree *tree, corba_context.possibleActions = convert_gdk_drag_action_to_corba (context->actions); corba_context.suggestedAction = convert_gdk_drag_action_to_corba (context->suggested_action); + folder = get_folder_at_node (storage_set_view, path); + can_handle = GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion (destination_folder_interface, + e_folder_get_physical_uri (folder), &corba_context, &suggested_action, &ev); diff --git a/shell/evolution-shell-component-dnd.c b/shell/evolution-shell-component-dnd.c index e8963406fe..c434ff4611 100644 --- a/shell/evolution-shell-component-dnd.c +++ b/shell/evolution-shell-component-dnd.c @@ -287,6 +287,7 @@ dnd_destination_destroy (GtkObject *object) /* CORBA interface */ static CORBA_boolean impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion (PortableServer_Servant servant, + const CORBA_char* physical_uri, const GNOME_Evolution_ShellComponentDnd_DestinationFolder_Context * destination_context, GNOME_Evolution_ShellComponentDnd_Action * suggested_action, CORBA_Environment * ev) { @@ -298,11 +299,12 @@ impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion (PortableS folder = EVOLUTION_SHELL_COMPONENT_DND_DESTINATION_FOLDER (bonobo_object); priv = folder->priv; - return priv->handle_motion (folder, destination_context, suggested_action, priv->user_data); + return priv->handle_motion (folder, physical_uri, destination_context, suggested_action, priv->user_data); } static CORBA_boolean impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop (PortableServer_Servant servant, + const CORBA_char* physical_uri, const GNOME_Evolution_ShellComponentDnd_DestinationFolder_Context * destination_context, const GNOME_Evolution_ShellComponentDnd_Action action, const GNOME_Evolution_ShellComponentDnd_Data * data, CORBA_Environment * ev) @@ -315,7 +317,7 @@ impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop (PortableSer folder = EVOLUTION_SHELL_COMPONENT_DND_DESTINATION_FOLDER (bonobo_object); priv = folder->priv; - return priv->handle_drop (folder, destination_context, action, data, priv->user_data); + return priv->handle_drop (folder, physical_uri, destination_context, action, data, priv->user_data); } static POA_GNOME_Evolution_ShellComponentDnd_DestinationFolder__vepv DestinationFolder_vepv; diff --git a/shell/evolution-shell-component-dnd.h b/shell/evolution-shell-component-dnd.h index 66994186fb..1292f153f4 100644 --- a/shell/evolution-shell-component-dnd.h +++ b/shell/evolution-shell-component-dnd.h @@ -95,10 +95,12 @@ typedef struct _EvolutionShellComponentDndDestinationFolder EvolutionShellCompon typedef struct _EvolutionShellComponentDndDestinationFolderClass EvolutionShellComponentDndDestinationFolderClass; typedef CORBA_boolean (*DndDestinationFolderHandleMotionFn)(EvolutionShellComponentDndDestinationFolder *folder, + const char *physical_uri, const GNOME_Evolution_ShellComponentDnd_DestinationFolder_Context * destination_context, GNOME_Evolution_ShellComponentDnd_Action * suggested_action_return, gpointer closure); typedef CORBA_boolean (*DndDestinationFolderHandleDropFn)(EvolutionShellComponentDndDestinationFolder *folder, + const char *physical_uri, const GNOME_Evolution_ShellComponentDnd_DestinationFolder_Context * destination_context, const GNOME_Evolution_ShellComponentDnd_Action action, const GNOME_Evolution_ShellComponentDnd_Data * data, |