From 9e78fcdbddb136955b1ad6bbcea59ba74360172f Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Date: Fri, 13 Aug 2010 11:43:35 -0400
Subject: [PATCH] [#3850] Make addressbook queries only when hitting enter

---
 .../src/contacts/addressbook.c                | 19 -------------------
 .../src/contacts/searchbar.c                  | 17 +++++++++++++++--
 2 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/sflphone-client-gnome/src/contacts/addressbook.c b/sflphone-client-gnome/src/contacts/addressbook.c
index 44c3f4edbe..c0bda1dcd0 100644
--- a/sflphone-client-gnome/src/contacts/addressbook.c
+++ b/sflphone-client-gnome/src/contacts/addressbook.c
@@ -53,27 +53,8 @@ addressbook_search (GtkEntry* entry)
 
     addressbook_config_load_parameters (&addressbook_config);
 
-    // search_by_contacts(gtk_entry_get_text(GTK_ENTRY(entry)), addressbook_config->max_results, &handler_async_search, addressbook_config);
 
     search_async_by_contacts (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config);
-    // addressbook_config_books
-
-    /*
-     if (strlen(query) >= 3) {
-
-         AddressBook_Config *addressbook_config;
-
-     // Activate waiting layer
-     activateWaitingLayer();
-
-     // Load the address book parameters
-     addressbook_config_load_parameters(&addressbook_config);
-
-     // Start the asynchronous search as soon as we have an entry
-     search_async(gtk_entry_get_text(GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config);
-
-     }
-     */
 
 }
 
diff --git a/sflphone-client-gnome/src/contacts/searchbar.c b/sflphone-client-gnome/src/contacts/searchbar.c
index 76fabb4df7..4f62b64bb0 100644
--- a/sflphone-client-gnome/src/contacts/searchbar.c
+++ b/sflphone-client-gnome/src/contacts/searchbar.c
@@ -46,12 +46,21 @@ GdkPixbuf *incoming_pixbuf = NULL;
 GdkPixbuf *outgoing_pixbuf = NULL;
 GdkPixbuf *missed_pixbuf = NULL;
 
+
+void searchbar_addressbook_activated (GtkEntry *entry, gchar *arg1 UNUSED, gpointer data UNUSED)
+{
+    DEBUG ("Searchbar: Entry activated");
+
+    addressbook_search (entry);
+}
+
 void searchbar_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED)
 {
-    DEBUG ("searchbar_entry_changed");
+    DEBUG ("Searchbar: Entry changed");
 
     if (active_calltree == contacts) {
-        addressbook_search (entry);
+        // Search made only when text entry is activated
+        // addressbook_search (entry);
     } else if (active_calltree == history) {
         history_search (HistorySearchType);
     }
@@ -304,6 +313,9 @@ GtkWidget* contacts_searchbar_new ()
     sexy_icon_entry_add_clear_button (SEXY_ICON_ENTRY (searchbox));
 #endif
 
+    gtk_entry_set_activates_default (GTK_ENTRY (searchbox), TRUE);
+    g_signal_connect_after (GTK_ENTRY (searchbox), "activate", G_CALLBACK (searchbar_addressbook_activated), NULL);
+
     g_signal_connect_after (GTK_ENTRY (searchbox), "changed", G_CALLBACK (searchbar_entry_changed), NULL);
 
     g_signal_connect_after (G_OBJECT (searchbox), "focus-in-event",
@@ -311,6 +323,7 @@ GtkWidget* contacts_searchbar_new ()
     g_signal_connect_after (G_OBJECT (searchbox), "focus-out-event",
                             G_CALLBACK (focus_on_searchbar_out), NULL);
 
+
     gtk_box_pack_start (GTK_BOX (ret), searchbox, TRUE, TRUE, 0);
 
     return ret;
-- 
GitLab