[gnome-notes] search-toolbar: Enable search on text change



commit e2cd3490a6253a80192417fe9055e0884f3a6151
Author: Jonathan Kang <jonathankang gnome org>
Date:   Wed Aug 19 11:05:41 2020 +0800

    search-toolbar: Enable search on text change
    
    After the redesign, the search bar is always shown. So there is no point
    disabling search when it's not shown. Remove the "key-press-event"
    handler as well.
    
    https://gitlab.gnome.org/GNOME/gnome-notes/-/issues/154

 src/bjb-search-toolbar.c | 62 +++++-------------------------------------------
 src/bjb-window-base.c    |  2 --
 2 files changed, 6 insertions(+), 58 deletions(-)
---
diff --git a/src/bjb-search-toolbar.c b/src/bjb-search-toolbar.c
index acfd016..d573cce 100644
--- a/src/bjb-search-toolbar.c
+++ b/src/bjb-search-toolbar.c
@@ -45,57 +45,14 @@ struct _BjbSearchToolbar
 
 G_DEFINE_TYPE (BjbSearchToolbar, bjb_search_toolbar, HDY_TYPE_SEARCH_BAR)
 
-static gboolean
-on_key_press_event_cb (BjbSearchToolbar *self,
-                       GdkEvent         *event)
-{
-  if (bjb_window_base_get_view_type (self->window) == BJB_WINDOW_BASE_NOTE_VIEW)
-    return FALSE;
-
-  return hdy_search_bar_handle_event (HDY_SEARCH_BAR (self), event);
-}
-
-static void
-on_search_changed_cb (BjbSearchToolbar *self)
-{
-  bjb_controller_set_needle (BJB_CONTROLLER (self->controller),
-                             gtk_entry_get_text (self->entry));
-}
-
 static void
-action_entry_text_change_callback (GtkEntry         *entry,
-                                   BjbSearchToolbar *self)
+on_search_changed_cb (GtkEntry         *entry,
+                      BjbSearchToolbar *self)
 {
   bjb_controller_set_needle (BJB_CONTROLLER (self->controller),
                              gtk_entry_get_text (entry));
 }
 
-void
-bjb_search_toolbar_disconnect (BjbSearchToolbar *self)
-{
-  if (self->key_pressed)
-    g_signal_handler_disconnect (self->window, self->key_pressed);
-  if (self->text_id)
-    g_signal_handler_disconnect (self->entry, self->text_id);
-
-  self->key_pressed = 0;
-  self->text_id = 0;
-}
-
-void
-bjb_search_toolbar_connect (BjbSearchToolbar *self)
-{
-  /* Connect to set the text */
-  if (self->key_pressed == 0)
-    self->key_pressed = g_signal_connect(self->window,"key-press-event",
-                                         G_CALLBACK(on_key_pressed), self);
-
-
-  if (self->text_id == 0)
-    self->text_id = g_signal_connect (self->entry, "search-changed",
-                        G_CALLBACK (action_entry_text_change_callback), self);
-}
-
 void
 bjb_search_toolbar_setup (BjbSearchToolbar *self,
                           GtkWidget        *window,
@@ -110,17 +67,6 @@ bjb_search_toolbar_setup (BjbSearchToolbar *self,
     gtk_entry_set_text (self->entry, self->needle);
     gtk_editable_set_position (GTK_EDITABLE (self->entry), -1);
   }
-
-  g_signal_connect_object (self->window,
-                           "key-press-event",
-                            G_CALLBACK (on_key_press_event_cb),
-                           self,
-                           G_CONNECT_SWAPPED);
-
-  g_signal_connect_swapped (self->entry,
-                            "search-changed",
-                            G_CALLBACK (on_search_changed_cb),
-                            self);
 }
 
 static void
@@ -128,6 +74,10 @@ bjb_search_toolbar_init (BjbSearchToolbar *self)
 {
   self->entry = GTK_ENTRY (gtk_search_entry_new ());
   hdy_search_bar_connect_entry (HDY_SEARCH_BAR (self), self->entry);
+  g_signal_connect (self->entry, "search-changed",
+                    G_CALLBACK (on_search_changed_cb), self);
+
+  hdy_search_bar_connect_entry (HDY_SEARCH_BAR (self), GTK_ENTRY (self->entry));
   gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->entry));
   gtk_widget_show (GTK_WIDGET (self->entry));
 }
diff --git a/src/bjb-window-base.c b/src/bjb-window-base.c
index 20d4216..1f71357 100644
--- a/src/bjb-window-base.c
+++ b/src/bjb-window-base.c
@@ -680,13 +680,11 @@ bjb_window_base_switch_to (BjbWindowBase *self, BjbWindowViewType type)
      */
 
     case BJB_WINDOW_BASE_MAIN_VIEW:
-      /* bjb_search_toolbar_connect (BJB_SEARCH_TOOLBAR (self->search_bar)); */
       /* gtk_widget_show (GTK_WIDGET (self->search_bar)); */
       /* gtk_stack_set_visible_child_name (self->stack, "main-view"); */
       break;
 
    case BJB_WINDOW_BASE_ARCHIVE_VIEW:
-      /* bjb_search_toolbar_connect (BJB_SEARCH_TOOLBAR (self->search_bar)); */
       /* gtk_widget_show (GTK_WIDGET (self->search_bar)); */
       /* gtk_stack_set_visible_child_name (self->stack, "main-view"); */
       break;


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