always resize the popup when it is visible, popdown when there are less

Wed Nov 19 22:15:01 2003  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtkentry.c (gtk_entry_completion_timeout): always resize
	the popup when it is visible, popdown when there are less chars
	than the minimum key length in the entry,
	(gtk_entry_completion_changed): popdown when the entry is empty.

	* gtk/gtkentrycompletion.c (gtk_entry_completion_init): set the
	size request of the vscrollbar to (-1, 0), to get a nicely sized
	completion treeview (Fixes #126573, reported by Piers Cornwell),
	(_gtk_entry_completion_resize_popup): show/hide the action_view
	based on items.
This commit is contained in:
Kristian Rietveld 2003-11-19 21:26:27 +00:00 committed by Kristian Rietveld
parent a4cc4cd1da
commit 720873b9cc
7 changed files with 83 additions and 8 deletions

View File

@ -1,3 +1,16 @@
Wed Nov 19 22:15:01 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkentry.c (gtk_entry_completion_timeout): always resize
the popup when it is visible, popdown when there are less chars
than the minimum key length in the entry,
(gtk_entry_completion_changed): popdown when the entry is empty.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): set the
size request of the vscrollbar to (-1, 0), to get a nicely sized
completion treeview (Fixes #126573, reported by Piers Cornwell),
(_gtk_entry_completion_resize_popup): show/hide the action_view
based on items.
2003-11-19 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn

View File

@ -1,3 +1,16 @@
Wed Nov 19 22:15:01 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkentry.c (gtk_entry_completion_timeout): always resize
the popup when it is visible, popdown when there are less chars
than the minimum key length in the entry,
(gtk_entry_completion_changed): popdown when the entry is empty.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): set the
size request of the vscrollbar to (-1, 0), to get a nicely sized
completion treeview (Fixes #126573, reported by Piers Cornwell),
(_gtk_entry_completion_resize_popup): show/hide the action_view
based on items.
2003-11-19 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn

View File

@ -1,3 +1,16 @@
Wed Nov 19 22:15:01 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkentry.c (gtk_entry_completion_timeout): always resize
the popup when it is visible, popdown when there are less chars
than the minimum key length in the entry,
(gtk_entry_completion_changed): popdown when the entry is empty.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): set the
size request of the vscrollbar to (-1, 0), to get a nicely sized
completion treeview (Fixes #126573, reported by Piers Cornwell),
(_gtk_entry_completion_resize_popup): show/hide the action_view
based on items.
2003-11-19 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn

View File

@ -1,3 +1,16 @@
Wed Nov 19 22:15:01 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkentry.c (gtk_entry_completion_timeout): always resize
the popup when it is visible, popdown when there are less chars
than the minimum key length in the entry,
(gtk_entry_completion_changed): popdown when the entry is empty.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): set the
size request of the vscrollbar to (-1, 0), to get a nicely sized
completion treeview (Fixes #126573, reported by Piers Cornwell),
(_gtk_entry_completion_resize_popup): show/hide the action_view
based on items.
2003-11-19 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn

View File

@ -1,3 +1,16 @@
Wed Nov 19 22:15:01 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkentry.c (gtk_entry_completion_timeout): always resize
the popup when it is visible, popdown when there are less chars
than the minimum key length in the entry,
(gtk_entry_completion_changed): popdown when the entry is empty.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): set the
size request of the vscrollbar to (-1, 0), to get a nicely sized
completion treeview (Fixes #126573, reported by Piers Cornwell),
(_gtk_entry_completion_resize_popup): show/hide the action_view
based on items.
2003-11-19 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn

View File

@ -4514,14 +4514,14 @@ gtk_entry_completion_timeout (gpointer data)
actions = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->actions), NULL);
if (matches > 0 || actions > 0)
{
if (! GTK_WIDGET_MAPPED (completion->priv->popup_window))
if ((matches > 0 || actions > 0)
&& ! GTK_WIDGET_VISIBLE (completion->priv->popup_window))
_gtk_entry_completion_popup (completion);
else
else if (GTK_WIDGET_VISIBLE (completion->priv->popup_window))
_gtk_entry_completion_resize_popup (completion);
}
}
else if (GTK_WIDGET_VISIBLE (completion->priv->popup_window))
_gtk_entry_completion_popdown (completion);
GDK_THREADS_LEAVE ();
@ -4682,7 +4682,11 @@ gtk_entry_completion_changed (GtkWidget *entry,
/* no need to normalize for this test */
if (! strcmp ("", gtk_entry_get_text (GTK_ENTRY (entry))))
{
if (GTK_WIDGET_VISIBLE (completion->priv->popup_window))
_gtk_entry_completion_popdown (completion);
return;
}
completion->priv->completion_timeout =
g_timeout_add (COMPLETION_TIMEOUT,

View File

@ -258,6 +258,8 @@ gtk_entry_completion_init (GtkEntryCompletion *completion)
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->scrolled_window),
GTK_SHADOW_ETCHED_IN);
/* a nasty hack to get the completions treeview to size nicely */
gtk_widget_set_size_request (GTK_SCROLLED_WINDOW (priv->scrolled_window)->vscrollbar, -1, 0);
/* actions */
priv->actions = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
@ -1061,6 +1063,8 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
if (items)
{
gtk_widget_show (completion->priv->action_view);
gtk_tree_view_column_cell_get_size (gtk_tree_view_get_column (GTK_TREE_VIEW (completion->priv->action_view), 0),
NULL, NULL, NULL, NULL,
&height);
@ -1069,6 +1073,8 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
completion->priv->entry->allocation.width - 2 * x_border,
items * height);
}
else
gtk_widget_hide (completion->priv->action_view);
return height;
}