[epiphany/wip/exalm/cleanups: 11/14] find-toolbar: Don't subclass HdySearchBar




commit fab77ded995adcb403ff006b1f9e671104708fb4
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Mon Nov 29 18:49:21 2021 +0500

    find-toolbar: Don't subclass HdySearchBar
    
    GtkSearchBar won't be derivable in GTK4.
    
    Part-of: <https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1034>

 embed/ephy-find-toolbar.c   | 24 ++++++++++++++----------
 embed/ephy-find-toolbar.h   |  3 +--
 embed/ephy-reader-handler.c |  1 +
 embed/ephy-web-view.c       |  1 +
 4 files changed, 17 insertions(+), 12 deletions(-)
---
diff --git a/embed/ephy-find-toolbar.c b/embed/ephy-find-toolbar.c
index ff640b28b..d8ec5a395 100644
--- a/embed/ephy-find-toolbar.c
+++ b/embed/ephy-find-toolbar.c
@@ -29,16 +29,17 @@
 
 #include <gdk/gdkkeysyms.h>
 #include <glib/gi18n.h>
-#include <gtk/gtk.h>
+#include <handy.h>
 #include <string.h>
 #include <webkit2/webkit2.h>
 
 struct _EphyFindToolbar {
-  HdySearchBar parent_instance;
+  GtkBin parent_instance;
 
   GCancellable *cancellable;
   WebKitWebView *web_view;
   WebKitFindController *controller;
+  GtkWidget *search_bar;
   GdTaggedEntry *entry;
   GdTaggedEntryTag *entry_tag;
   GtkWidget *next;
@@ -52,7 +53,7 @@ struct _EphyFindToolbar {
   gboolean typing_ahead;
 };
 
-G_DEFINE_TYPE (EphyFindToolbar, ephy_find_toolbar, HDY_TYPE_SEARCH_BAR)
+G_DEFINE_TYPE (EphyFindToolbar, ephy_find_toolbar, GTK_TYPE_BIN)
 
 enum {
   PROP_0,
@@ -362,7 +363,7 @@ ephy_find_toolbar_load_changed_cb (WebKitWebView   *web_view,
                                    EphyFindToolbar *toolbar)
 {
   if (load_event == WEBKIT_LOAD_STARTED &&
-      hdy_search_bar_get_search_mode (HDY_SEARCH_BAR (toolbar))) {
+      hdy_search_bar_get_search_mode (HDY_SEARCH_BAR (toolbar->search_bar))) {
     ephy_find_toolbar_close (toolbar);
   }
 }
@@ -374,12 +375,15 @@ ephy_find_toolbar_init (EphyFindToolbar *toolbar)
   GtkWidget *box;
   GtkSizeGroup *size_group;
 
+  toolbar->search_bar = hdy_search_bar_new ();
+  gtk_container_add (GTK_CONTAINER (toolbar), toolbar->search_bar);
+
   size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
 
   clamp = GTK_WIDGET (hdy_clamp_new ());
   hdy_clamp_set_maximum_size (HDY_CLAMP (clamp), 400);
   hdy_clamp_set_tightening_threshold (HDY_CLAMP (clamp), 300);
-  gtk_container_add (GTK_CONTAINER (toolbar), clamp);
+  gtk_container_add (GTK_CONTAINER (toolbar->search_bar), clamp);
 
   box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
   gtk_style_context_add_class (gtk_widget_get_style_context (box),
@@ -431,7 +435,7 @@ ephy_find_toolbar_init (EphyFindToolbar *toolbar)
                             G_CALLBACK (ephy_find_toolbar_find_next), toolbar);
   g_signal_connect_swapped (toolbar->prev, "clicked",
                             G_CALLBACK (ephy_find_toolbar_find_previous), toolbar);
-  hdy_search_bar_connect_entry (HDY_SEARCH_BAR (toolbar),
+  hdy_search_bar_connect_entry (HDY_SEARCH_BAR (toolbar->search_bar),
                                 GTK_ENTRY (toolbar->entry));
 
   search_entry_changed_cb (GTK_ENTRY (toolbar->entry), toolbar);
@@ -668,15 +672,15 @@ ephy_find_toolbar_open (EphyFindToolbar *toolbar,
 
   gtk_editable_select_region (GTK_EDITABLE (toolbar->entry), 0, -1);
 
-  hdy_search_bar_set_search_mode (HDY_SEARCH_BAR (toolbar), TRUE);
-  hdy_search_bar_set_show_close_button (HDY_SEARCH_BAR (toolbar), TRUE);
+  hdy_search_bar_set_search_mode (HDY_SEARCH_BAR (toolbar->search_bar), TRUE);
+  hdy_search_bar_set_show_close_button (HDY_SEARCH_BAR (toolbar->search_bar), TRUE);
   gtk_widget_grab_focus (GTK_WIDGET (toolbar->entry));
 }
 
 void
 ephy_find_toolbar_close (EphyFindToolbar *toolbar)
 {
-  hdy_search_bar_set_search_mode (HDY_SEARCH_BAR (toolbar), FALSE);
+  hdy_search_bar_set_search_mode (HDY_SEARCH_BAR (toolbar->search_bar), FALSE);
 
   if (toolbar->web_view == NULL) return;
 
@@ -686,7 +690,7 @@ ephy_find_toolbar_close (EphyFindToolbar *toolbar)
 void
 ephy_find_toolbar_request_close (EphyFindToolbar *toolbar)
 {
-  if (hdy_search_bar_get_search_mode (HDY_SEARCH_BAR (toolbar))) {
+  if (hdy_search_bar_get_search_mode (HDY_SEARCH_BAR (toolbar->search_bar))) {
     g_signal_emit (toolbar, signals[CLOSE], 0);
   }
 }
diff --git a/embed/ephy-find-toolbar.h b/embed/ephy-find-toolbar.h
index b6aae1bc8..829c6355d 100644
--- a/embed/ephy-find-toolbar.h
+++ b/embed/ephy-find-toolbar.h
@@ -22,7 +22,6 @@
 #pragma once
 
 #include <gtk/gtk.h>
-#include <handy.h>
 
 #include "ephy-web-view.h"
 
@@ -30,7 +29,7 @@ G_BEGIN_DECLS
 
 #define EPHY_TYPE_FIND_TOOLBAR (ephy_find_toolbar_get_type ())
 
-G_DECLARE_FINAL_TYPE (EphyFindToolbar, ephy_find_toolbar, EPHY, FIND_TOOLBAR, HdySearchBar)
+G_DECLARE_FINAL_TYPE (EphyFindToolbar, ephy_find_toolbar, EPHY, FIND_TOOLBAR, GtkBin)
 
 EphyFindToolbar *ephy_find_toolbar_new           (WebKitWebView *web_view);
 
diff --git a/embed/ephy-reader-handler.c b/embed/ephy-reader-handler.c
index fb53436e6..25adf90cb 100644
--- a/embed/ephy-reader-handler.c
+++ b/embed/ephy-reader-handler.c
@@ -29,6 +29,7 @@
 
 #include <gio/gio.h>
 #include <glib/gi18n.h>
+#include <handy.h>
 #include <string.h>
 
 struct _EphyReaderHandler {
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 2f964ccf5..81af0ed81 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -54,6 +54,7 @@
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 #include <gtk/gtk.h>
+#include <handy.h>
 
 /**
  * SECTION:ephy-web-view


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