aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog17
-rw-r--r--shell/Evolution-ShellComponentDnd.idl6
-rw-r--r--shell/e-storage-set-view.c4
-rw-r--r--shell/evolution-shell-component-dnd.c6
-rw-r--r--shell/evolution-shell-component-dnd.h2
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,