summaryrefslogtreecommitdiff
path: root/browser.c
diff options
context:
space:
mode:
authorPeter Hofmann <scm@uninformativ.de>2014-06-19 10:05:37 +0200
committerPeter Hofmann <scm@uninformativ.de>2014-06-19 10:05:37 +0200
commitefdf063fda47ae9205df79e89b849caaff3474f4 (patch)
tree9aafb09e6bcfdb217d46ac4ad92f93c31c73e07a /browser.c
parent93fe780df78f1e5674e34f6b766ae8b0e878ea7e (diff)
downloadlariza-efdf063fda47ae9205df79e89b849caaff3474f4.tar.gz
Mouse wheel zoom
Diffstat (limited to 'browser.c')
-rw-r--r--browser.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/browser.c b/browser.c
index 1ce72c2..06907c7 100644
--- a/browser.c
+++ b/browser.c
@@ -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;
}