]> git.armaanb.net Git - chorizo.git/commitdiff
Fix interactive mouse wheel zoom (GTK+ 3)
authorPeter Hofmann <scm@uninformativ.de>
Sun, 9 Nov 2014 13:00:45 +0000 (14:00 +0100)
committerPeter Hofmann <scm@uninformativ.de>
Sun, 9 Nov 2014 13:00:45 +0000 (14:00 +0100)
browser.c

index b2b4f0f90f17e31c049fa86e7a8d1a4ec975b241..8cf663f9d11c0f23b1d32241a73b1cf422545535 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -635,6 +635,7 @@ gboolean
 key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
        struct Client *c = (struct Client *)data;
+       gdouble dx, dy;
        gchar *f;
        gfloat z;
 
@@ -711,21 +712,14 @@ key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data)
                if (((GdkEventScroll *)event)->state & GDK_MOD1_MASK ||
                    ((GdkEventScroll *)event)->state & GDK_CONTROL_MASK)
                {
-                       switch (((GdkEventScroll *)event)->direction)
-                       {
-                               case GDK_SCROLL_UP:
-                                       z = webkit_web_view_get_zoom_level(WEBKIT_WEB_VIEW(c->web_view));
-                                       z += 0.1;
-                                       webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), z);
-                                       return TRUE;
-                               case GDK_SCROLL_DOWN:
-                                       z = webkit_web_view_get_zoom_level(WEBKIT_WEB_VIEW(c->web_view));
-                                       z -= 0.1;
-                                       webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), z);
-                                       return TRUE;
-                               default:
-                                       break;
-                       }
+                       gdk_event_get_scroll_deltas(event, &dx, &dy);
+                       z = webkit_web_view_get_zoom_level(WEBKIT_WEB_VIEW(c->web_view));
+                       if (dy == 1)
+                               z += 0.1;
+                       else if (dy == -1)
+                               z -= 0.1;
+                       webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), z);
+                       return TRUE;
                }
        }