move set_cursor after realization of the popup window, so clamp node

2007-01-04  Matthias Clasen  <mclasen@redhat.com>

        * 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
This commit is contained in:
Matthias Clasen 2007-01-05 05:41:25 +00:00 committed by Matthias Clasen
parent 1398ef63e1
commit d6e4485f9f
2 changed files with 14 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2007-01-04 Matthias Clasen <mclasen@redhat.com>
* 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 <behdad@gnome.org> 2007-01-04 Behdad Esfahbod <behdad@gnome.org>
* gtk/gtklabel.c (get_layout_location): Fix uninitialized width * gtk/gtklabel.c (get_layout_location): Fix uninitialized width

View File

@ -1756,7 +1756,7 @@ static void
gtk_combo_box_real_popup (GtkComboBox *combo_box) gtk_combo_box_real_popup (GtkComboBox *combo_box)
{ {
gint x, y, width, height; gint x, y, width, height;
GtkTreePath *path, *ppath; GtkTreePath *path = NULL, *ppath;
GtkWidget *toplevel; GtkWidget *toplevel;
if (!GTK_WIDGET_REALIZED (combo_box)) if (!GTK_WIDGET_REALIZED (combo_box))
@ -1789,9 +1789,6 @@ gtk_combo_box_real_popup (GtkComboBox *combo_box)
if (gtk_tree_path_up (ppath)) if (gtk_tree_path_up (ppath))
gtk_tree_view_expand_to_path (GTK_TREE_VIEW (combo_box->priv->tree_view), gtk_tree_view_expand_to_path (GTK_TREE_VIEW (combo_box->priv->tree_view),
ppath); 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_path_free (ppath);
} }
gtk_tree_view_set_hover_expand (GTK_TREE_VIEW (combo_box->priv->tree_view), 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 */ /* popup */
gtk_widget_show (combo_box->priv->popup_window); 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_widget_grab_focus (combo_box->priv->popup_window);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (combo_box->priv->button), gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (combo_box->priv->button),
TRUE); TRUE);