Modified: trunk/Tools/ChangeLog (176538 => 176539)
--- trunk/Tools/ChangeLog 2014-11-25 09:59:38 UTC (rev 176538)
+++ trunk/Tools/ChangeLog 2014-11-25 13:48:04 UTC (rev 176539)
@@ -1,3 +1,18 @@
+2014-11-25 Tanay C <[email protected]>
+
+ [GTK] Minibrowser: Add support for zoom using Control Key + Mouse scroll
+ https://bugs.webkit.org/show_bug.cgi?id=138090
+
+ Reviewed by Carlos Garcia Campos.
+
+ * MiniBrowser/gtk/BrowserWindow.c: Implementing zoom using Cntrl + Mouse scroll
+ (browserWindowZoomIn): Added.
+ (browserWindowZoomOut): Added.
+ (scrollEventCallback): Added.
+ (zoomInCallback): Modified.
+ (zoomOutCallback): Modified.
+ (browserWindowConstructed): Modified.
+
2014-11-25 Csaba Osztrogonác <[email protected]>
[EFL] REGRESSION(r176514): It made performance tests fail
Modified: trunk/Tools/MiniBrowser/gtk/BrowserWindow.c (176538 => 176539)
--- trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2014-11-25 09:59:38 UTC (rev 176538)
+++ trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2014-11-25 13:48:04 UTC (rev 176539)
@@ -445,6 +445,39 @@
return zoomLevel > minimumZoomLevel;
}
+static gboolean browserWindowZoomIn(BrowserWindow *window)
+{
+ if (browserWindowCanZoomIn(window)) {
+ gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) * zoomStep;
+ webkit_web_view_set_zoom_level(window->webView, zoomLevel);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static gboolean browserWindowZoomOut(BrowserWindow *window)
+{
+ if (browserWindowCanZoomOut(window)) {
+ gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) / zoomStep;
+ webkit_web_view_set_zoom_level(window->webView, zoomLevel);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static gboolean scrollEventCallback(WebKitWebView *webView, const GdkEventScroll *event, BrowserWindow *window)
+{
+ GdkModifierType mod = gtk_accelerator_get_default_mod_mask();
+
+ if ((event->state & mod) != GDK_CONTROL_MASK)
+ return FALSE;
+
+ if (event->delta_y < 0)
+ return browserWindowZoomIn(window);
+
+ return browserWindowZoomOut(window);
+}
+
static void browserWindowUpdateZoomActions(BrowserWindow *window)
{
gtk_widget_set_sensitive(window->zoomInItem, browserWindowCanZoomIn(window));
@@ -503,18 +536,12 @@
static void zoomInCallback(BrowserWindow *window)
{
- if (browserWindowCanZoomIn(window)) {
- gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) * zoomStep;
- webkit_web_view_set_zoom_level(window->webView, zoomLevel);
- }
+ browserWindowZoomIn(window);
}
static void zoomOutCallback(BrowserWindow *window)
{
- if (browserWindowCanZoomOut(window)) {
- gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) / zoomStep;
- webkit_web_view_set_zoom_level(window->webView, zoomLevel);
- }
+ browserWindowZoomOut(window);
}
static void defaultZoomCallback(BrowserWindow *window)
@@ -781,6 +808,7 @@
g_signal_connect(window->webView, "enter-fullscreen", G_CALLBACK(webViewEnterFullScreen), window);
g_signal_connect(window->webView, "leave-fullscreen", G_CALLBACK(webViewLeaveFullScreen), window);
g_signal_connect(window->webView, "notify::is-loading", G_CALLBACK(webViewIsLoadingChanged), window);
+ g_signal_connect(window->webView, "scroll-event", G_CALLBACK(scrollEventCallback), window);
g_signal_connect(webkit_web_view_get_context(window->webView), "download-started", G_CALLBACK(downloadStarted), window);