From c4ed9dc78c5b3523f5893c60bcef276eb36e7e72 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 21 Apr 2004 21:47:53 +0000 Subject: [PATCH] Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. It 2004-04-21 Matthias Clasen * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. It doesn't like that. (#140642, Christian Persch) --- ChangeLog | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ ChangeLog.pre-2-4 | 4 ++++ ChangeLog.pre-2-6 | 4 ++++ ChangeLog.pre-2-8 | 4 ++++ gtk/gtkentrycompletion.c | 17 ++++++++++------- 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index f92166f3e..bbe27c0f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2004-04-21 Matthias Clasen + * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): + Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. + It doesn't like that. (#140642, Christian Persch) + * demos/gtk-demo/expander.c (do_expander): A new demo. * demos/gtk-demo/Makefile.am (demos): Add expander.c. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f92166f3e..bbe27c0f6 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2004-04-21 Matthias Clasen + * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): + Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. + It doesn't like that. (#140642, Christian Persch) + * demos/gtk-demo/expander.c (do_expander): A new demo. * demos/gtk-demo/Makefile.am (demos): Add expander.c. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f92166f3e..bbe27c0f6 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,5 +1,9 @@ 2004-04-21 Matthias Clasen + * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): + Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. + It doesn't like that. (#140642, Christian Persch) + * demos/gtk-demo/expander.c (do_expander): A new demo. * demos/gtk-demo/Makefile.am (demos): Add expander.c. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f92166f3e..bbe27c0f6 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,9 @@ 2004-04-21 Matthias Clasen + * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): + Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. + It doesn't like that. (#140642, Christian Persch) + * demos/gtk-demo/expander.c (do_expander): A new demo. * demos/gtk-demo/Makefile.am (demos): Add expander.c. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f92166f3e..bbe27c0f6 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,9 @@ 2004-04-21 Matthias Clasen + * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): + Don't call gtk_tree_view_scroll_to_cell() on an empty tree view. + It doesn't like that. (#140642, Christian Persch) + * demos/gtk-demo/expander.c (do_expander): A new demo. * demos/gtk-demo/Makefile.am (demos): Add expander.c. diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c index 34fcb7a69..680ab815b 100644 --- a/gtk/gtkentrycompletion.c +++ b/gtk/gtkentrycompletion.c @@ -1098,7 +1098,7 @@ gboolean _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion) { gint x, y; - gint items, height, x_border, y_border; + gint matches, items, height, x_border, y_border; GdkScreen *screen; gint monitor_num; GdkRectangle monitor; @@ -1112,9 +1112,9 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion) x += x_border; y += 2 * y_border; - items = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->filter_model), NULL); + matches = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->filter_model), NULL); - items = MIN (items, 15); + items = MIN (matches, 15); gtk_tree_view_column_cell_get_size (completion->priv->column, NULL, NULL, NULL, NULL, &height); @@ -1164,17 +1164,20 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion) { y += height; above = FALSE; - path = gtk_tree_path_new_from_indices (0, -1); } else { y -= popup_req.height; above = TRUE; - path = gtk_tree_path_new_from_indices (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->filter_model), NULL) - 1, -1); } - gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (completion->priv->tree_view), path, NULL, FALSE, 0.0, 0.0); - gtk_tree_path_free (path); + if (matches > 0) + { + path = gtk_tree_path_new_from_indices (above ? matches - 1 : 0, -1); + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (completion->priv->tree_view), path, + NULL, FALSE, 0.0, 0.0); + gtk_tree_path_free (path); + } gtk_window_move (GTK_WINDOW (completion->priv->popup_window), x, y); -- 2.43.2