[epiphany/wip/exalm/urlbar: 2/2] Fix entry icon spacing and margins




commit d811ecf9ea197460cfd01df9f3ad0da25ce64d94
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Mon Feb 1 13:53:22 2021 +0500

    Fix entry icon spacing and margins
    
    This is a fallout from 5410fec78bc699b593d327e6a98b105f6cef7cd5
    
    Move from GtkButtonBox back to GtkBox, hide the extension page actions box
    when empty. Add entry_icon style class to icons rather than their event
    boxes.

 lib/widgets/ephy-location-entry.c             | 52 ++++++++++-----------------
 src/webextension/ephy-web-extension-manager.c |  4 +++
 2 files changed, 23 insertions(+), 33 deletions(-)
---
diff --git a/lib/widgets/ephy-location-entry.c b/lib/widgets/ephy-location-entry.c
index 17055fc00..1141b04ae 100644
--- a/lib/widgets/ephy-location-entry.c
+++ b/lib/widgets/ephy-location-entry.c
@@ -57,7 +57,6 @@ struct _EphyLocationEntry {
   GtkOverlay parent_instance;
 
   GtkWidget *url_entry;
-  GtkWidget *button_box;
   GtkWidget *page_action_box;
   GtkWidget *bookmark;
   GtkWidget *bookmark_event_box;
@@ -992,6 +991,7 @@ static void
 ephy_location_entry_construct_contents (EphyLocationEntry *entry)
 {
   GtkWidget *event;
+  GtkWidget *box;
   GtkStyleContext *context;
   DzlShortcutController *controller;
 
@@ -1031,26 +1031,18 @@ ephy_location_entry_construct_contents (EphyLocationEntry *entry)
   gtk_overlay_add_overlay (GTK_OVERLAY (entry), event);
 
   /* Button Box */
-  entry->button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
-  gtk_container_add (GTK_CONTAINER (event), entry->button_box);
-  gtk_box_set_homogeneous (GTK_BOX (entry->button_box), FALSE);
-  g_signal_connect (G_OBJECT (entry->button_box), "size-allocate", G_CALLBACK 
(button_box_size_allocated_cb), entry);
-  gtk_button_box_set_layout (GTK_BUTTON_BOX (entry->button_box), GTK_BUTTONBOX_EXPAND);
-  gtk_widget_set_valign (entry->button_box, GTK_ALIGN_CENTER);
-  gtk_widget_set_halign (entry->button_box, GTK_ALIGN_END);
-  gtk_widget_set_margin_end (entry->button_box, 5);
-  gtk_widget_show (entry->button_box);
+  box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+  gtk_container_add (GTK_CONTAINER (event), box);
+  g_signal_connect (G_OBJECT (box), "size-allocate", G_CALLBACK (button_box_size_allocated_cb), entry);
+  gtk_widget_set_valign (box, GTK_ALIGN_CENTER);
+  gtk_widget_set_halign (box, GTK_ALIGN_END);
+  gtk_widget_show (box);
 
   /* Page action box */
-  entry->page_action_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
-  gtk_box_set_homogeneous (GTK_BOX (entry->page_action_box), FALSE);
-  gtk_widget_show (entry->page_action_box);
-  gtk_button_box_set_layout (GTK_BUTTON_BOX (entry->page_action_box), GTK_BUTTONBOX_EXPAND);
-  gtk_widget_set_valign (entry->page_action_box, GTK_ALIGN_CENTER);
-  gtk_widget_set_halign (entry->page_action_box, GTK_ALIGN_END);
-  gtk_box_pack_start (GTK_BOX (entry->button_box), entry->page_action_box, FALSE, FALSE, 0);
+  entry->page_action_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+  gtk_box_pack_start (GTK_BOX (box), entry->page_action_box, FALSE, FALSE, 0);
 
-  context = gtk_widget_get_style_context (entry->button_box);
+  context = gtk_widget_get_style_context (box);
   gtk_style_context_add_class (context, "entry_icon_box");
 
   /* Bookmark */
@@ -1061,7 +1053,7 @@ ephy_location_entry_construct_contents (EphyLocationEntry *entry)
   gtk_widget_show (entry->bookmark);
   g_signal_connect (G_OBJECT (entry->bookmark_event_box), "button_press_event", G_CALLBACK 
(bookmark_icon_button_press_event_cb), entry);
   gtk_container_add (GTK_CONTAINER (entry->bookmark_event_box), entry->bookmark);
-  gtk_box_pack_end (GTK_BOX (entry->button_box), entry->bookmark_event_box, FALSE, FALSE, 6);
+  gtk_box_pack_end (GTK_BOX (box), entry->bookmark_event_box, FALSE, FALSE, 0);
 
   context = gtk_widget_get_style_context (entry->bookmark);
   gtk_style_context_add_class (context, "entry_icon");
@@ -1079,7 +1071,7 @@ ephy_location_entry_construct_contents (EphyLocationEntry *entry)
   gtk_widget_set_valign (entry->reader_mode, GTK_ALIGN_CENTER);
   gtk_widget_show (entry->reader_mode);
   gtk_container_add (GTK_CONTAINER (entry->reader_mode_event_box), entry->reader_mode);
-  gtk_box_pack_end (GTK_BOX (entry->button_box), entry->reader_mode_event_box, FALSE, FALSE, 6);
+  gtk_box_pack_end (GTK_BOX (box), entry->reader_mode_event_box, FALSE, FALSE, 0);
 
   context = gtk_widget_get_style_context (entry->reader_mode);
   gtk_style_context_add_class (context, "entry_icon");
@@ -1523,24 +1515,16 @@ void
 ephy_location_entry_page_action_add (EphyLocationEntry *entry,
                                      GtkWidget         *action)
 {
-  GtkStyleContext *context;
-
-  context = gtk_widget_get_style_context (action);
-  gtk_style_context_add_class (context, "entry_icon");
+  gtk_box_pack_end (GTK_BOX (entry->page_action_box), action, FALSE, FALSE, 0);
 
-  gtk_box_pack_end (GTK_BOX (entry->page_action_box), action, FALSE, FALSE, 6);
+  gtk_widget_show (entry->page_action_box);
 }
 
-static
-void clear_page_actions (GtkWidget *child,
-                         gpointer   user_data)
+static void
+clear_page_actions (GtkWidget *child,
+                    gpointer   user_data)
 {
   EphyLocationEntry *entry = EPHY_LOCATION_ENTRY (user_data);
-  GtkStyleContext *context;
-
-  context = gtk_widget_get_style_context (child);
-
-  gtk_style_context_remove_class (context, "entry_icon");
 
   gtk_container_remove (GTK_CONTAINER (entry->page_action_box), child);
 }
@@ -1549,4 +1533,6 @@ void
 ephy_location_entry_page_action_clear (EphyLocationEntry *entry)
 {
   gtk_container_foreach (GTK_CONTAINER (entry->page_action_box), clear_page_actions, entry);
+
+  gtk_widget_hide (entry->page_action_box);
 }
diff --git a/src/webextension/ephy-web-extension-manager.c b/src/webextension/ephy-web-extension-manager.c
index 4208c50d2..009168dee 100644
--- a/src/webextension/ephy-web-extension-manager.c
+++ b/src/webextension/ephy-web-extension-manager.c
@@ -372,6 +372,7 @@ create_page_action_widget (EphyWebExtensionManager *self,
 {
   GtkWidget *image;
   GtkWidget *event_box;
+  GtkStyleContext *context;
 
   /* Create new event box with page action */
   event_box = gtk_event_box_new ();
@@ -380,6 +381,9 @@ create_page_action_widget (EphyWebExtensionManager *self,
   g_signal_connect_object (event_box, "button_press_event", G_CALLBACK (page_action_clicked), web_extension, 
0);
   gtk_widget_show_all (event_box);
 
+  context = gtk_widget_get_style_context (image);
+  gtk_style_context_add_class (context, "entry_icon");
+
   return g_object_ref (event_box);
 }
 


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