[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master e443eab 13/16: Implement zoom for WebKit widget.
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master e443eab 13/16: Implement zoom for WebKit widget. |
Date: |
Wed, 26 Oct 2016 06:07:21 +0000 (UTC) |
branch: master
commit e443eab6bf2b7b6e2f6a9ab06b1c5618b19ae653
Author: Ricardo Wurmus <address@hidden>
Commit: Paul Eggert <address@hidden>
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.
---
lisp/xwidget.el | 13 +++++++++++++
src/xwidget.c | 20 ++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 13e3fdf2..871b729 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -42,6 +42,7 @@
(declare-function xwidget-webkit-execute-script "xwidget.c"
(xwidget script &optional callback))
(declare-function xwidget-webkit-goto-uri "xwidget.c" (xwidget uri))
+(declare-function xwidget-webkit-zoom "xwidget.c" (xwidget factor))
(declare-function xwidget-plist "xwidget.c" (xwidget))
(declare-function set-xwidget-plist "xwidget.c" (xwidget plist))
(declare-function xwidget-view-window "xwidget.c" (xwidget-view))
@@ -106,6 +107,8 @@ Interactively, URL defaults to the string looking like a
url around point."
(define-key map "t" (lambda () (interactive) (message "o"))) ;FIXME: ?!?
(define-key map "\C-m" 'xwidget-webkit-insert-string)
(define-key map "w" 'xwidget-webkit-current-url)
+ (define-key map "+" 'xwidget-webkit-zoom-in)
+ (define-key map "-" 'xwidget-webkit-zoom-out)
;;similar to image mode bindings
(define-key map (kbd "SPC") 'xwidget-webkit-scroll-up)
@@ -131,6 +134,16 @@ Interactively, URL defaults to the string looking like a
url around point."
map)
"Keymap for `xwidget-webkit-mode'.")
+(defun xwidget-webkit-zoom-in ()
+ "Increase webkit view zoom factor."
+ (interactive)
+ (xwidget-webkit-zoom (xwidget-webkit-current-session) 0.1))
+
+(defun xwidget-webkit-zoom-out ()
+ "Decrease webkit view zoom factor."
+ (interactive)
+ (xwidget-webkit-zoom (xwidget-webkit-current-session) -0.1))
+
(defun xwidget-webkit-scroll-up ()
"Scroll webkit up."
(interactive)
diff --git a/src/xwidget.c b/src/xwidget.c
index dbd8fc1..8105b3d 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");
- [Emacs-diffs] master updated (1ea669d -> 5edf76b), Paul Eggert, 2016/10/26
- [Emacs-diffs] master 8809002 09/16: xwidget: Get URL asynchronously., Paul Eggert, 2016/10/26
- [Emacs-diffs] master 4aa7c4b 08/16: xwidget: Get selection with asynchronous JavaScript, Paul Eggert, 2016/10/26
- [Emacs-diffs] master cc3b868 05/16: xwidget: Get title via asynchronous JavaScript., Paul Eggert, 2016/10/26
- [Emacs-diffs] master ca479f9 15/16: xwidget: Map "previous-line" and "next-line" to scroll, Paul Eggert, 2016/10/26
- [Emacs-diffs] master 01c2fba 14/16: xwidget: Bind "beginning-of-buffer" and "end-of-buffer", Paul Eggert, 2016/10/26
- [Emacs-diffs] master 623deaf 02/16: xwidget: Pass JavaScript return value to optional callback procedure, Paul Eggert, 2016/10/26
- [Emacs-diffs] master ff80a9c 04/16: xwidget: Do not use `xwidget-execute-script-rv' to insert string, Paul Eggert, 2016/10/26
- [Emacs-diffs] master 7ee870e 03/16: Remove scrolled window container around WebKit widget, Paul Eggert, 2016/10/26
- [Emacs-diffs] master 67e0331 10/16: xwidget: Remove title hack., Paul Eggert, 2016/10/26
- [Emacs-diffs] master e443eab 13/16: Implement zoom for WebKit widget.,
Paul Eggert <=
- [Emacs-diffs] master d781662 01/16: xwidget: Use WebKit2 API, Paul Eggert, 2016/10/26
- [Emacs-diffs] master c483fa6 11/16: Let initial WebKit view fill window, Paul Eggert, 2016/10/26
- [Emacs-diffs] master a9785bd 12/16: Dynamically resize WebKit widget., Paul Eggert, 2016/10/26
- [Emacs-diffs] master efa269d 07/16: xwidget: Add function to find element by CSS selector, Paul Eggert, 2016/10/26
- [Emacs-diffs] master 7457644 06/16: xwidget: Simplify functions to scroll to elements, Paul Eggert, 2016/10/26
- [Emacs-diffs] master 5edf76b 16/16: * src/xwidget.c (webkit_js_to_lisp): Now static., Paul Eggert, 2016/10/26