e0971ba
--- file-roller-2.28.1/src/eggtreemultidnd.c	2009-10-19 13:53:45.000000000 -0400
e0971ba
+++ hacked/src/eggtreemultidnd.c	2009-10-29 23:23:12.660790804 -0400
e0971ba
@@ -179,8 +179,14 @@
e0971ba
   priv_data->event_list = NULL;
e0971ba
   priv_data->pending_event = FALSE;
e0971ba
 
e0971ba
-  g_signal_handler_disconnect (widget, priv_data->motion_notify_handler);
e0971ba
-  g_signal_handler_disconnect (widget, priv_data->button_release_handler);
e0971ba
+  if (priv_data->motion_notify_handler) {
e0971ba
+    g_signal_handler_disconnect (widget, priv_data->motion_notify_handler);
e0971ba
+    priv_data->motion_notify_handler = 0;
e0971ba
+  }
e0971ba
+  if (priv_data->button_release_handler) {
e0971ba
+    g_signal_handler_disconnect (widget, priv_data->button_release_handler);
e0971ba
+    priv_data->button_release_handler = 0;
e0971ba
+  }
e0971ba
 }
e0971ba
 
e0971ba
 
e0971ba
@@ -401,16 +407,23 @@
e0971ba
 	priv_data->event_list = g_slist_append (priv_data->event_list,
e0971ba
 						gdk_event_copy ((GdkEvent*)event));
e0971ba
 
e0971ba
-      priv_data->motion_notify_handler =
e0971ba
-	g_signal_connect (G_OBJECT (tree_view),
e0971ba
-			  "motion_notify_event",
e0971ba
-			  G_CALLBACK (egg_tree_multi_drag_motion_event),
e0971ba
-			  NULL);
e0971ba
-      priv_data->button_release_handler =
e0971ba
-	g_signal_connect (G_OBJECT (tree_view),
e0971ba
-			  "button_release_event",
e0971ba
-			  G_CALLBACK (egg_tree_multi_drag_button_release_event),
e0971ba
-			  NULL);
e0971ba
+      if (priv_data->motion_notify_handler == 0)
e0971ba
+        {
e0971ba
+          priv_data->motion_notify_handler =
e0971ba
+	    g_signal_connect (G_OBJECT (tree_view),
e0971ba
+	  		      "motion_notify_event",
e0971ba
+			      G_CALLBACK (egg_tree_multi_drag_motion_event),
e0971ba
+			      NULL);
e0971ba
+        }
e0971ba
+
e0971ba
+      if (priv_data->button_release_handler == 0)
e0971ba
+        {
e0971ba
+          priv_data->button_release_handler =
e0971ba
+	    g_signal_connect (G_OBJECT (tree_view),
e0971ba
+	 		      "button_release_event",
e0971ba
+			      G_CALLBACK (egg_tree_multi_drag_button_release_event),
e0971ba
+			      NULL);
e0971ba
+        }
e0971ba
 
e0971ba
       if (priv_data->drag_data_get_handler == 0)
e0971ba
 	{