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:

committed by
Kristian Rietveld

parent
a4cc4cd1da
commit
720873b9cc
13
ChangeLog
13
ChangeLog
@ -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>
|
2003-11-19 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
||||||
|
@ -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>
|
2003-11-19 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
||||||
|
@ -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>
|
2003-11-19 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
||||||
|
@ -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>
|
2003-11-19 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
||||||
|
@ -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>
|
2003-11-19 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
|
||||||
|
@ -4514,14 +4514,14 @@ gtk_entry_completion_timeout (gpointer data)
|
|||||||
|
|
||||||
actions = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->actions), NULL);
|
actions = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->actions), NULL);
|
||||||
|
|
||||||
if (matches > 0 || actions > 0)
|
if ((matches > 0 || actions > 0)
|
||||||
{
|
&& ! GTK_WIDGET_VISIBLE (completion->priv->popup_window))
|
||||||
if (! GTK_WIDGET_MAPPED (completion->priv->popup_window))
|
_gtk_entry_completion_popup (completion);
|
||||||
_gtk_entry_completion_popup (completion);
|
else if (GTK_WIDGET_VISIBLE (completion->priv->popup_window))
|
||||||
else
|
_gtk_entry_completion_resize_popup (completion);
|
||||||
_gtk_entry_completion_resize_popup (completion);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else if (GTK_WIDGET_VISIBLE (completion->priv->popup_window))
|
||||||
|
_gtk_entry_completion_popdown (completion);
|
||||||
|
|
||||||
GDK_THREADS_LEAVE ();
|
GDK_THREADS_LEAVE ();
|
||||||
|
|
||||||
@ -4682,7 +4682,11 @@ gtk_entry_completion_changed (GtkWidget *entry,
|
|||||||
|
|
||||||
/* no need to normalize for this test */
|
/* no need to normalize for this test */
|
||||||
if (! strcmp ("", gtk_entry_get_text (GTK_ENTRY (entry))))
|
if (! strcmp ("", gtk_entry_get_text (GTK_ENTRY (entry))))
|
||||||
return;
|
{
|
||||||
|
if (GTK_WIDGET_VISIBLE (completion->priv->popup_window))
|
||||||
|
_gtk_entry_completion_popdown (completion);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
completion->priv->completion_timeout =
|
completion->priv->completion_timeout =
|
||||||
g_timeout_add (COMPLETION_TIMEOUT,
|
g_timeout_add (COMPLETION_TIMEOUT,
|
||||||
|
@ -258,6 +258,8 @@ gtk_entry_completion_init (GtkEntryCompletion *completion)
|
|||||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->scrolled_window),
|
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->scrolled_window),
|
||||||
GTK_SHADOW_ETCHED_IN);
|
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 */
|
/* actions */
|
||||||
priv->actions = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
|
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)
|
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),
|
gtk_tree_view_column_cell_get_size (gtk_tree_view_get_column (GTK_TREE_VIEW (completion->priv->action_view), 0),
|
||||||
NULL, NULL, NULL, NULL,
|
NULL, NULL, NULL, NULL,
|
||||||
&height);
|
&height);
|
||||||
@ -1069,6 +1073,8 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion)
|
|||||||
completion->priv->entry->allocation.width - 2 * x_border,
|
completion->priv->entry->allocation.width - 2 * x_border,
|
||||||
items * height);
|
items * height);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
gtk_widget_hide (completion->priv->action_view);
|
||||||
|
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user