[gtk+] GtkSearchEntry: Don't wait for timeout when emptying



commit 536fc22de4f4dfe9f1962e8f825c097ba81282c1
Author: Bastien Nocera <hadess hadess net>
Date:   Tue May 21 18:31:10 2013 +0200

    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 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c
index b79705b..c29faab 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");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]