summaryrefslogtreecommitdiff
path: root/gtk/gtkentrycompletion.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2008-09-17 15:22:52 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-09-17 15:22:52 +0000
commit0f397dccccf3f5fc5279c97a831b110d10fb3c0b (patch)
tree6ebc4cce1dff22a16e4608d38c3dfcb4701288be /gtk/gtkentrycompletion.c
parent5f9c268e561a3064704e6e9295428e7916e58a94 (diff)
downloadgdk-pixbuf-0f397dccccf3f5fc5279c97a831b110d10fb3c0b.tar.gz
Bug 408154 – [PATCH] Change GtkEntryCompletion max-items to style
2008-09-17 Matthias Clasen <mclasen@redhat.com> Bug 408154 – [PATCH] Change GtkEntryCompletion max-items to style property * gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup): Take actions into account when finding the available space for matches. Patch by Ross Burton svn path=/trunk/; revision=21413
Diffstat (limited to 'gtk/gtkentrycompletion.c')
-rw-r--r--gtk/gtkentrycompletion.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c
index e739f5f8a..932637488 100644
--- a/gtk/gtkentrycompletion.c
+++ b/gtk/gtkentrycompletion.c
@@ -1365,7 +1365,7 @@ gboolean
_gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
{
gint x, y;
- gint matches, items, height, x_border, y_border;
+ gint matches, actions, items, height, x_border, y_border;
GdkScreen *screen;
gint monitor_num;
gint vertical_separator;
@@ -1383,6 +1383,7 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
_gtk_entry_get_borders (GTK_ENTRY (completion->priv->entry), &x_border, &y_border);
matches = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->filter_model), NULL);
+ actions = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->actions), NULL);
gtk_tree_view_column_cell_get_size (completion->priv->column, NULL,
NULL, NULL, NULL, &height);
@@ -1403,9 +1404,9 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
if (y > monitor.height / 2)
- items = MIN (matches, (monitor.y + y) / height);
+ items = MIN (matches, (monitor.y + y) / height - actions);
else
- items = MIN (matches, (monitor.height - y) / height - 1);
+ items = MIN (matches, (monitor.height - y) / height - 1 - actions);
if (items <= 0)
gtk_widget_hide (completion->priv->scrolled_window);
@@ -1423,9 +1424,7 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
/* default on no match */
completion->priv->current_selected = -1;
- items = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->actions), NULL);
-
- if (items)
+ if (actions)
{
gtk_widget_show (completion->priv->action_view);
gtk_widget_set_size_request (completion->priv->action_view, width, -1);