From bd80abab9f749698ad034aa2a3b313ac62344b9c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 22 Aug 2005 14:28:17 +0000 Subject: Backport from 2.8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2005-08-22 Matthias Clasen Backport from 2.8. * gtk/gtkcombobox.c (gtk_combo_box_list_destroy): Cleanup a possible resize idle. (#311141, Robert Ögren) --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gtk/gtkcombobox.c | 13 ++++++++++++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 683bd1859..9303dda23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-08-22 Matthias Clasen + + Backport from 2.8. + + * gtk/gtkcombobox.c (gtk_combo_box_list_destroy): Cleanup + a possible resize idle. (#311141, Robert Ögren) + 2005-08-18 Matthias Clasen * configure.in: Bump version diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 683bd1859..9303dda23 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2005-08-22 Matthias Clasen + + Backport from 2.8. + + * gtk/gtkcombobox.c (gtk_combo_box_list_destroy): Cleanup + a possible resize idle. (#311141, Robert Ögren) + 2005-08-18 Matthias Clasen * configure.in: Bump version diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 683bd1859..9303dda23 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2005-08-22 Matthias Clasen + + Backport from 2.8. + + * gtk/gtkcombobox.c (gtk_combo_box_list_destroy): Cleanup + a possible resize idle. (#311141, Robert Ögren) + 2005-08-18 Matthias Clasen * configure.in: Bump version diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index defe560be..d82858726 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -103,6 +103,7 @@ struct _GtkComboBoxPrivate guint changed_id; guint popup_idle_id; guint scroll_timer; + guint resize_idle_id; gint width; GSList *cells; @@ -2852,6 +2853,8 @@ list_popup_resize_idle (gpointer user_data) gtk_window_move (GTK_WINDOW (combo_box->priv->popup_window), x, y); } + combo_box->priv->resize_idle_id = 0; + GDK_THREADS_LEAVE (); return FALSE; @@ -2860,7 +2863,9 @@ list_popup_resize_idle (gpointer user_data) static void gtk_combo_box_list_popup_resize (GtkComboBox *combo_box) { - g_idle_add (list_popup_resize_idle, combo_box); + if (!combo_box->priv->resize_idle_id) + combo_box->priv->resize_idle_id = + g_idle_add (list_popup_resize_idle, combo_box); } static void @@ -3330,6 +3335,12 @@ gtk_combo_box_list_destroy (GtkComboBox *combo_box) combo_box->priv->scroll_timer = 0; } + if (combo_box->priv->resize_idle_id) + { + g_source_remove (combo_box->priv->resize_idle_id); + combo_box->priv->resize_idle_id = 0; + } + gtk_widget_destroy (combo_box->priv->tree_view); combo_box->priv->tree_view = NULL; -- cgit v1.2.1