From 536fc22de4f4dfe9f1962e8f825c097ba81282c1 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 21 May 2013 18:31:10 +0200 Subject: [PATCH] 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 --- gtk/gtksearchentry.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c index b79705b3ee..c29faab000 100644 --- a/gtk/gtksearchentry.c +++ b/gtk/gtksearchentry.c @@ -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");