summaryrefslogtreecommitdiff
path: root/gtk/gtkdnd.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-01-11 16:07:47 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-01-11 16:07:47 +0000
commit0b84fc27424dfe1a3dbd7cb35b80a95eadd8aa17 (patch)
tree2f673136507fd4254c84aae3ae4751d41f2e9977 /gtk/gtkdnd.c
parent983335243b6e49e4929b0cce67dfdb0259981e27 (diff)
downloadgtk+-0b84fc27424dfe1a3dbd7cb35b80a95eadd8aa17.tar.gz
Only remove handlers for motion/button_release at drop, remove
Mon Jan 11 10:45:28 1999 Owen Taylor <otaylor@redhat.com> * gtk/gtkdnd.c: Only remove handlers for motion/button_release at drop, remove "selection_get" handler later.
Diffstat (limited to 'gtk/gtkdnd.c')
-rw-r--r--gtk/gtkdnd.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c
index 9dab1b40e6..cd29c53d53 100644
--- a/gtk/gtkdnd.c
+++ b/gtk/gtkdnd.c
@@ -2334,7 +2334,8 @@ gtk_drag_source_info_destroy (gpointer data)
if (info->widget)
gtk_widget_unref (info->widget);
-
+
+ gtk_signal_disconnect_by_data (GTK_OBJECT (info->ipc_widget), info);
gtk_selection_remove_all (info->ipc_widget);
gtk_object_set_data (GTK_OBJECT (info->ipc_widget), "gtk-info", NULL);
source_widgets = g_slist_remove (source_widgets, info->ipc_widget);
@@ -2459,7 +2460,12 @@ gtk_drag_button_release_cb (GtkWidget *widget,
}
gtk_grab_remove (widget);
- gtk_signal_disconnect_by_data (GTK_OBJECT (widget), info);
+ gtk_signal_disconnect_by_func (GTK_OBJECT (widget),
+ GTK_SIGNAL_FUNC (gtk_drag_button_release_cb),
+ info);
+ gtk_signal_disconnect_by_func (GTK_OBJECT (widget),
+ GTK_SIGNAL_FUNC (gtk_drag_motion_cb),
+ info);
/* Send on a release pair to the the original
* widget to convince it to release its grab. We need to