forked from AuroraMiddleware/gtk
GtkSearchEntry: Don't wait for timeout when emptying
When the text entry gets cleared, emit the "changed" signal straight away. This avoids a lag when dismissing a search. https://bugzilla.gnome.org/show_bug.cgi?id=700787
This commit is contained in:
parent
1bfbfbc50c
commit
536fc22de4
@ -124,6 +124,7 @@ search_entry_changed_cb (GtkSearchEntry *entry,
|
||||
GtkSearchEntryPrivate *priv = GET_PRIV (entry);
|
||||
const char *str, *icon_name;
|
||||
gboolean active;
|
||||
gboolean cleared = FALSE;
|
||||
|
||||
/* Update the icons first */
|
||||
str = gtk_entry_get_text (GTK_ENTRY (entry));
|
||||
@ -132,6 +133,7 @@ search_entry_changed_cb (GtkSearchEntry *entry,
|
||||
{
|
||||
icon_name = NULL;
|
||||
active = FALSE;
|
||||
cleared = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -153,6 +155,11 @@ search_entry_changed_cb (GtkSearchEntry *entry,
|
||||
if (priv->in_timeout)
|
||||
return;
|
||||
|
||||
/* Don't emit the signal in a timeout if we've cleared
|
||||
* the entry, we don't want a delay */
|
||||
if (cleared)
|
||||
return;
|
||||
|
||||
/* Queue up the timeout */
|
||||
reset_timeout (entry);
|
||||
g_signal_stop_emission_by_name (entry, "changed");
|
||||
|
Loading…
Reference in New Issue
Block a user