diff --git a/ChangeLog b/ChangeLog index 8616383f0e..8d91cf1af1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ 2005-09-02 Matthias Clasen - * gtk/gtkentry.c (gtk_entry_class_init): + * gtk/gtkentry.c (gtk_entry_destroy): Disconnect idle handlers + on destroy to avoid problems when they are called on a destroyed + widget. (#315135, John Cupitt) + + * gtk/gtkentry.c (gtk_entry_class_init): * gtk/gtktextview.c (gtk_text_view_class_init): Add bindings for Ctrl-Shift-A to unselect all. (#309301, Kathy Fernandes) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 8616383f0e..8d91cf1af1 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,6 +1,10 @@ 2005-09-02 Matthias Clasen - * gtk/gtkentry.c (gtk_entry_class_init): + * gtk/gtkentry.c (gtk_entry_destroy): Disconnect idle handlers + on destroy to avoid problems when they are called on a destroyed + widget. (#315135, John Cupitt) + + * gtk/gtkentry.c (gtk_entry_class_init): * gtk/gtktextview.c (gtk_text_view_class_init): Add bindings for Ctrl-Shift-A to unselect all. (#309301, Kathy Fernandes) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 5bf530ddea..8d1e16f359 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -1071,6 +1071,18 @@ gtk_entry_destroy (GtkObject *object) gtk_entry_reset_im_context (entry); gtk_entry_reset_layout (entry); + if (entry->blink_timeout) + { + g_source_remove (entry->blink_timeout); + entry->blink_timeout = 0; + } + + if (entry->recompute_idle) + { + g_source_remove (entry->recompute_idle); + entry->recompute_idle = 0; + } + if (!entry->visible) { /* We want to trash the text here because the entry might be leaked. */