Title: [176539] trunk/Tools
Revision
176539
Author
[email protected]
Date
2014-11-25 05:48:04 -0800 (Tue, 25 Nov 2014)

Log Message

[GTK] Minibrowser: Add support for zoom using Control Key + Mouse scroll
https://bugs.webkit.org/show_bug.cgi?id=138090

Patch by Tanay C <[email protected]> on 2014-11-25
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.

Modified Paths

Diff

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);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to