summaryrefslogtreecommitdiff
path: root/browser.c
diff options
context:
space:
mode:
authorPeter Hofmann <scm@uninformativ.de>2014-11-09 14:00:45 +0100
committerPeter Hofmann <scm@uninformativ.de>2014-11-09 14:00:45 +0100
commitc076343ece1c7aff8bd7b63ef4b232d950281df5 (patch)
tree740edf8643faf53b0ef4f8a0f616bb85b25ac3ed /browser.c
parent37b7845e3005e4a811451cc09cabc8f659892a2c (diff)
downloadlariza-c076343ece1c7aff8bd7b63ef4b232d950281df5.tar.gz
Fix interactive mouse wheel zoom (GTK+ 3)
Diffstat (limited to 'browser.c')
-rw-r--r--browser.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/browser.c b/browser.c
index b2b4f0f..8cf663f 100644
--- 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;
}
}