summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Mikhaylenko <alexm@gnome.org>2020-10-02 20:44:26 +0500
committerAlexander Mikhaylenko <alexm@gnome.org>2020-10-02 21:00:23 +0500
commitb73bc03f9aa946471de8bab5f0cff191d021d936 (patch)
tree0445a0f000f1d5c13e41ce674793f163e4bbfb08
parent84ffc1bc71340e702e44afbc83e7da3e40d3c4bb (diff)
downloadepiphany-b73bc03f9aa946471de8bab5f0cff191d021d936.tar.gz
page-menu-popover: Set minimum width for zoom button
Also refactor how it's set, there's no need to pass widgets around here. Fixes https://gitlab.gnome.org/GNOME/epiphany/issues/953
-rw-r--r--src/ephy-header-bar.c19
-rw-r--r--src/ephy-header-bar.h3
-rw-r--r--src/ephy-window.c8
-rw-r--r--src/resources/gtk/page-menu-popover.ui9
4 files changed, 21 insertions, 18 deletions
diff --git a/src/ephy-header-bar.c b/src/ephy-header-bar.c
index a248b0ef9..c0fd583c0 100644
--- a/src/ephy-header-bar.c
+++ b/src/ephy-header-bar.c
@@ -60,7 +60,7 @@ struct _EphyHeaderBar {
EphyActionBarStart *action_bar_start;
EphyActionBarEnd *action_bar_end;
GtkWidget *page_menu_button;
- GtkWidget *zoom_level_button;
+ GtkWidget *zoom_level_label;
GtkWidget *restore_button;
GtkWidget *combined_stop_reload_button;
GtkWidget *combined_stop_reload_image;
@@ -265,7 +265,7 @@ ephy_header_bar_constructed (GObject *object)
g_type_ensure (G_TYPE_THEMED_ICON);
builder = gtk_builder_new_from_resource ("/org/gnome/epiphany/gtk/page-menu-popover.ui");
page_menu_popover = GTK_WIDGET (gtk_builder_get_object (builder, "page-menu-popover"));
- header_bar->zoom_level_button = GTK_WIDGET (gtk_builder_get_object (builder, "zoom-level"));
+ header_bar->zoom_level_label = GTK_WIDGET (gtk_builder_get_object (builder, "zoom-level"));
if (ephy_embed_shell_get_mode (embed_shell) == EPHY_EMBED_SHELL_MODE_APPLICATION) {
gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "new-window-separator")));
gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "new-window-button")));
@@ -384,12 +384,6 @@ ephy_header_bar_get_title_widget (EphyHeaderBar *header_bar)
}
GtkWidget *
-ephy_header_bar_get_zoom_level_button (EphyHeaderBar *header_bar)
-{
- return header_bar->zoom_level_button;
-}
-
-GtkWidget *
ephy_header_bar_get_page_menu_button (EphyHeaderBar *header_bar)
{
return header_bar->page_menu_button;
@@ -455,3 +449,12 @@ ephy_header_bar_start_change_combined_stop_reload_state (EphyHeaderBar *header_b
_(REFRESH_BUTTON_TOOLTIP));
}
}
+
+void
+ephy_header_bar_set_zoom_level (EphyHeaderBar *header_bar,
+ gdouble zoom)
+{
+ g_autofree gchar *zoom_level = g_strdup_printf ("%2.0f%%", zoom * 100);
+
+ gtk_label_set_label (GTK_LABEL (header_bar->zoom_level_label), zoom_level);
+}
diff --git a/src/ephy-header-bar.h b/src/ephy-header-bar.h
index 206c34268..5227bcbff 100644
--- a/src/ephy-header-bar.h
+++ b/src/ephy-header-bar.h
@@ -36,7 +36,6 @@ G_DECLARE_FINAL_TYPE (EphyHeaderBar, ephy_header_bar, EPHY, HEADER_BAR, GtkHeade
GtkWidget *ephy_header_bar_new (EphyWindow *window);
EphyTitleWidget *ephy_header_bar_get_title_widget (EphyHeaderBar *header_bar);
-GtkWidget *ephy_header_bar_get_zoom_level_button (EphyHeaderBar *header_bar);
GtkWidget *ephy_header_bar_get_page_menu_button (EphyHeaderBar *header_bar);
EphyWindow *ephy_header_bar_get_window (EphyHeaderBar *header_bar);
void ephy_header_bar_set_reader_mode_state (EphyHeaderBar *header_bar,
@@ -47,5 +46,7 @@ void ephy_header_bar_set_adaptive_mode (EphyHeaderBa
EphyAdaptiveMode adaptive_mode);
void ephy_header_bar_start_change_combined_stop_reload_state (EphyHeaderBar *header_bar,
gboolean loading);
+void ephy_header_bar_set_zoom_level (EphyHeaderBar *header_bar,
+ gdouble zoom);
G_END_DECLS
diff --git a/src/ephy-window.c b/src/ephy-window.c
index bf2e3bb4f..b661d99d1 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -1104,19 +1104,13 @@ sync_tab_zoom (WebKitWebView *web_view,
GAction *action;
gboolean can_zoom_in = TRUE, can_zoom_out = TRUE, can_zoom_normal = FALSE;
double zoom;
- GtkWidget *zoom_level_button;
- gchar *zoom_level;
if (window->closing)
return;
zoom = webkit_web_view_get_zoom_level (web_view);
- zoom_level_button = ephy_header_bar_get_zoom_level_button (EPHY_HEADER_BAR (window->header_bar));
-
- zoom_level = g_strdup_printf ("%2.0f%%", zoom * 100);
- gtk_button_set_label (GTK_BUTTON (zoom_level_button), zoom_level);
- g_free (zoom_level);
+ ephy_header_bar_set_zoom_level (EPHY_HEADER_BAR (window->header_bar), zoom);
if (zoom >= ZOOM_MAXIMAL) {
can_zoom_in = FALSE;
diff --git a/src/resources/gtk/page-menu-popover.ui b/src/resources/gtk/page-menu-popover.ui
index 366b2ddc5..8627bda0a 100644
--- a/src/resources/gtk/page-menu-popover.ui
+++ b/src/resources/gtk/page-menu-popover.ui
@@ -38,12 +38,17 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="zoom-level">
- <property name="label">100%</property>
+ <object class="GtkButton">
<property name="tooltip_text" translatable="yes">Restore Zoom</property>
<property name="action-name">win.zoom-normal</property>
<property name="xalign">0.5</property>
<property name="visible">True</property>
+ <child>
+ <object class="GtkLabel" id="zoom-level">
+ <property name="visible">True</property>
+ <property name="width-chars">5</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">True</property>