summaryrefslogtreecommitdiff
path: root/src/xwidget.c
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2016-10-25 23:00:35 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2016-10-25 23:07:13 -0700
commite443eab6bf2b7b6e2f6a9ab06b1c5618b19ae653 (patch)
treec8062ae848fa5e031d1cf06663c86e6b7cf6ca13 /src/xwidget.c
parenta9785bd5c2e27e949040342e441c1a65a5b650d0 (diff)
downloademacs-e443eab6bf2b7b6e2f6a9ab06b1c5618b19ae653.tar.gz
Implement zoom for WebKit widget.
* src/xwidget.c (xwidget-webkit-zoom): New procedure. * lisp/xwidget.el: Bind "+" and "-" to zoom in and out, respectively. (xwidget-webkit-zoom): Declare procedure. (xwidget-webkit-zoom-in, xwidget-webkit-zoom-out): New procedures.
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index dbd8fc18ad7..8105b3d825d 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -681,6 +681,25 @@ DEFUN ("xwidget-webkit-goto-uri",
return Qnil;
}
+DEFUN ("xwidget-webkit-zoom",
+ Fxwidget_webkit_zoom, Sxwidget_webkit_zoom,
+ 2, 2, 0,
+ doc: /* Change the zoom factor of the xwidget webkit instance
+referenced by XWIDGET. */)
+ (Lisp_Object xwidget, Lisp_Object factor)
+{
+ WEBKIT_FN_INIT ();
+ if (FLOATP (factor))
+ {
+ double zoom_change = XFLOAT_DATA (factor);
+ webkit_web_view_set_zoom_level
+ (WEBKIT_WEB_VIEW (xw->widget_osr),
+ webkit_web_view_get_zoom_level
+ (WEBKIT_WEB_VIEW (xw->widget_osr)) + zoom_change);
+ }
+ return Qnil;
+}
+
DEFUN ("xwidget-webkit-execute-script",
Fxwidget_webkit_execute_script, Sxwidget_webkit_execute_script,
@@ -953,6 +972,7 @@ syms_of_xwidget (void)
defsubr (&Sset_xwidget_query_on_exit_flag);
defsubr (&Sxwidget_webkit_goto_uri);
+ defsubr (&Sxwidget_webkit_zoom);
defsubr (&Sxwidget_webkit_execute_script);
DEFSYM (Qwebkit, "webkit");