diff options
author | Cody Russell <bratsche@gnome.org> | 2010-01-29 11:09:13 -0600 |
---|---|---|
committer | Cody Russell <bratsche@gnome.org> | 2010-01-29 11:10:16 -0600 |
commit | 2147e57f46c43ef3fd3c145735329f8f2a558c4f (patch) | |
tree | 26b8c1eb9bfe02c197e96d2384010d203b9d0e56 /gtk | |
parent | c9639c924b123628cb7d1032af066fa4ea4d49fa (diff) | |
download | gtk+-2147e57f46c43ef3fd3c145735329f8f2a558c4f.tar.gz |
Remove existing signal connections in gtk_drag_dest_unset().
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=608370
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkdnd.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index bdd3ab9e72..1ebc2848d8 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -1341,8 +1341,22 @@ gtk_drag_dest_set_proxy (GtkWidget *widget, void gtk_drag_dest_unset (GtkWidget *widget) { + GtkDragDestSite *old_site; + g_return_if_fail (GTK_IS_WIDGET (widget)); + old_site = g_object_get_data (G_OBJECT (widget), + "gtk-drag-dest"); + if (old_site) + { + g_signal_handlers_disconnect_by_func (widget, + gtk_drag_dest_realized, + old_site); + g_signal_handlers_disconnect_by_func (widget, + gtk_drag_dest_hierarchy_changed, + old_site); + } + g_object_set_data (G_OBJECT (widget), I_("gtk-drag-dest"), NULL); } |