diff options
Diffstat (limited to 'gtk/gtksignal.c')
-rw-r--r-- | gtk/gtksignal.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk/gtksignal.c b/gtk/gtksignal.c index da6cedd6fa..47902f7175 100644 --- a/gtk/gtksignal.c +++ b/gtk/gtksignal.c @@ -1195,12 +1195,20 @@ gtk_signal_handlers_destroy (GtkObject *object) next = handler->next; if (handler->id > 0) - gtk_signal_handler_unref (handler, object); + { + handler->id = 0; + handler->blocked += 1; + gtk_signal_handler_unref (handler, object); + } handler = next; } handler = gtk_object_get_data_by_id (object, gtk_handler_quark); if (handler->id > 0) - gtk_signal_handler_unref (handler, object); + { + handler->id = 0; + handler->blocked += 1; + gtk_signal_handler_unref (handler, object); + } } } |