From d6e4485f9fe495d146cf0b9d7f951662aea55e1a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 5 Jan 2007 05:41:25 +0000 Subject: [PATCH] move set_cursor after realization of the popup window, so clamp node 2007-01-04 Matthias Clasen * gtk/gtkcombobox.c (gtk_combo_box_popup): move set_cursor after realization of the popup window, so clamp node doesn't fail. (#346616, Tommi Komulainen, patch by Kristian Rietveld). svn path=/trunk/; revision=17073 --- ChangeLog | 6 ++++++ gtk/gtkcombobox.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a617e1476a..2c6b9a4df6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-01-04 Matthias Clasen + + * gtk/gtkcombobox.c (gtk_combo_box_popup): move set_cursor + after realization of the popup window, so clamp node doesn't fail. + (#346616, Tommi Komulainen, patch by Kristian Rietveld). + 2007-01-04 Behdad Esfahbod * gtk/gtklabel.c (get_layout_location): Fix uninitialized width diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 23af2f8ae0..235a320400 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -1756,7 +1756,7 @@ static void gtk_combo_box_real_popup (GtkComboBox *combo_box) { gint x, y, width, height; - GtkTreePath *path, *ppath; + GtkTreePath *path = NULL, *ppath; GtkWidget *toplevel; if (!GTK_WIDGET_REALIZED (combo_box)) @@ -1789,9 +1789,6 @@ gtk_combo_box_real_popup (GtkComboBox *combo_box) if (gtk_tree_path_up (ppath)) gtk_tree_view_expand_to_path (GTK_TREE_VIEW (combo_box->priv->tree_view), ppath); - gtk_tree_view_set_cursor (GTK_TREE_VIEW (combo_box->priv->tree_view), - path, NULL, FALSE); - gtk_tree_path_free (path); gtk_tree_path_free (ppath); } gtk_tree_view_set_hover_expand (GTK_TREE_VIEW (combo_box->priv->tree_view), @@ -1800,6 +1797,13 @@ gtk_combo_box_real_popup (GtkComboBox *combo_box) /* popup */ gtk_widget_show (combo_box->priv->popup_window); + if (path) + { + gtk_tree_view_set_cursor (GTK_TREE_VIEW (combo_box->priv->tree_view), + path, NULL, FALSE); + gtk_tree_path_free (path); + } + gtk_widget_grab_focus (combo_box->priv->popup_window); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (combo_box->priv->button), TRUE);