summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorCody Russell <bratsche@gnome.org>2010-01-29 11:09:13 -0600
committerCody Russell <bratsche@gnome.org>2010-01-29 11:10:16 -0600
commit2147e57f46c43ef3fd3c145735329f8f2a558c4f (patch)
tree26b8c1eb9bfe02c197e96d2384010d203b9d0e56 /gtk
parentc9639c924b123628cb7d1032af066fa4ea4d49fa (diff)
downloadgtk+-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.c14
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);
}