From d811ecf9ea197460cfd01df9f3ad0da25ce64d94 Mon Sep 17 00:00:00 2001 From: Alexander Mikhaylenko Date: Mon, 1 Feb 2021 13:53:22 +0500 Subject: 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); } -- cgit v1.2.1