diff options
author | Peter Hofmann <scm@uninformativ.de> | 2014-06-19 10:05:37 +0200 |
---|---|---|
committer | Peter Hofmann <scm@uninformativ.de> | 2014-06-19 10:05:37 +0200 |
commit | efdf063fda47ae9205df79e89b849caaff3474f4 (patch) | |
tree | 9aafb09e6bcfdb217d46ac4ad92f93c31c73e07a /browser.c | |
parent | 93fe780df78f1e5674e34f6b766ae8b0e878ea7e (diff) | |
download | lariza-efdf063fda47ae9205df79e89b849caaff3474f4.tar.gz |
Mouse wheel zoom
Diffstat (limited to 'browser.c')
-rw-r--r-- | browser.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -256,6 +256,8 @@ client_new(const gchar *uri) G_CALLBACK(key_web_view), c); g_signal_connect(G_OBJECT(c->web_view), "button-press-event", G_CALLBACK(key_web_view), c); + g_signal_connect(G_OBJECT(c->web_view), "scroll-event", + G_CALLBACK(key_web_view), c); g_signal_connect(G_OBJECT(c->web_view), "hovering-over-link", G_CALLBACK(hover_web_view), c); g_signal_connect(G_OBJECT(c->web_view), "resource-request-starting", @@ -696,6 +698,7 @@ key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data) WebKitHitTestResultContext ht_context; WebKitHitTestResult *ht_result = NULL; gchar *ht_uri = NULL, *f; + gfloat z; (void)widget; @@ -778,6 +781,32 @@ key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data) return TRUE; } } + else if (event->type == GDK_SCROLL) + { + 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; + } + } + } return FALSE; } |