[Webkit-unassigned] [Bug 188746] [GTK] Touchscreen pinch to zoom should scale the page like other platforms
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Aug 22 09:37:43 PDT 2018
https://bugs.webkit.org/show_bug.cgi?id=188746
--- Comment #33 from Justin Michaud <justin at justinmichaud.com> ---
I tested the new api with the following patch to epiphany:
```
diff --git a/src/ephy-window.c b/src/ephy-window.c
index a86fd45b2..d7f005ba3 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -967,7 +967,7 @@ sync_tab_zoom (WebKitWebView *web_view, GParamSpec *pspec, EphyWindow *window)
{
GActionGroup *action_group;
GAction *action;
- gboolean can_zoom_in = TRUE, can_zoom_out = TRUE, can_zoom_normal = FALSE;
+ gboolean can_zoom_in = TRUE, can_zoom_out = TRUE;
double zoom;
GtkWidget *zoom_level_button;
gchar *zoom_level;
@@ -991,10 +991,6 @@ sync_tab_zoom (WebKitWebView *web_view, GParamSpec *pspec, EphyWindow *window)
can_zoom_out = FALSE;
}
- if (zoom != 1.0) {
- can_zoom_normal = TRUE;
- }
-
action_group = gtk_widget_get_action_group (GTK_WIDGET (window),
"win");
@@ -1003,7 +999,7 @@ sync_tab_zoom (WebKitWebView *web_view, GParamSpec *pspec, EphyWindow *window)
action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "zoom-out");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), can_zoom_out);
action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "zoom-normal");
- g_simple_action_set_enabled (G_SIMPLE_ACTION (action), can_zoom_normal);
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), true);
}
static void
@@ -3472,6 +3468,30 @@ ephy_window_set_zoom (EphyWindow *window,
webkit_web_view_set_zoom_level (web_view, zoom);
}
+/**
+ * ephy_window_set_scale:
+ * @window: an #EphyWindow
+ * @scale: the desired zoom level
+ *
+ * Sets the scale on @window's active #EphyEmbed. A @scale of 1.0 corresponds to
+ * 100% scale (normal size).
+ **/
+void
+ephy_window_set_scale (EphyWindow *window,
+ double scale)
+{
+ EphyEmbed *embed;
+ WebKitWebView *web_view;
+
+ g_assert (EPHY_IS_WINDOW (window));
+
+ embed = window->active_embed;
+ g_assert (embed != NULL);
+
+ web_view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+ webkit_web_view_set_page_scale (web_view, scale, 0, 0);
+}
+
static void
ephy_window_change_allow_popup_windows_state (GSimpleAction *action,
GVariant *state,
diff --git a/src/ephy-window.h b/src/ephy-window.h
index 1a6feab4d..6f66733ff 100644
--- a/src/ephy-window.h
+++ b/src/ephy-window.h
@@ -53,6 +53,9 @@ void ephy_window_load_url (EphyWindow *window,
void ephy_window_set_zoom (EphyWindow *window,
double zoom);
+void ephy_window_set_scale (EphyWindow *window,
+ double scale);
+
void ephy_window_activate_location (EphyWindow *window);
const char *ephy_window_get_location (EphyWindow *window);
diff --git a/src/window-commands.c b/src/window-commands.c
index 0d483808c..0a25bd18a 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -1782,6 +1782,7 @@ window_cmd_zoom_normal (GSimpleAction *action,
gpointer user_data)
{
EphyWindow *window = user_data;
+ ephy_window_set_scale (window, 1.0);
ephy_window_set_zoom (window, 1.0);
}
```
With this patch, ctrl + 0 works as expected.
Thanks for your patience!
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180822/935aa60a/attachment-0001.html>
More information about the webkit-unassigned
mailing list