mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-05 19:31:02 -08:00
Add xwidget-webkit-edit-mode to make using the WebKit browser easier
* doc/emacs/misc.texi: Document changes. * etc/NEWS: Document recent changes. * lisp/xwidget.el (xwidget-webkit-pass-command-event): New variable. * lisp/xwidget.el (xwidget-perform-lispy-event): New function declaration. * lisp/xwidget.el (xwidget-webkit-edit-mode): New minor mode.
This commit is contained in:
parent
b48a89fd2e
commit
6ed7454f17
3 changed files with 69 additions and 0 deletions
|
|
@ -2953,6 +2953,14 @@ one-key commands for scrolling the widget, changing its size, and
|
||||||
reloading it. Type @w{@kbd{C-h b}} in that buffer to see the key
|
reloading it. Type @w{@kbd{C-h b}} in that buffer to see the key
|
||||||
bindings.
|
bindings.
|
||||||
|
|
||||||
|
@findex xwidget-webkit-edit-mode
|
||||||
|
@cindex xwidget-webkit-edit-mode
|
||||||
|
By default, typing a self-inserting character inside an xwidget
|
||||||
|
webkit buffer will do nothing, or trigger some special action. To
|
||||||
|
make those characters and other common editing keys insert themselves
|
||||||
|
when pressed, you can enable @code{xwidget-webkit-edit-mode}, which
|
||||||
|
redefines them to be passed through to the WebKit xwidget.
|
||||||
|
|
||||||
@node Browse-URL
|
@node Browse-URL
|
||||||
@subsection Following URLs
|
@subsection Following URLs
|
||||||
@cindex World Wide Web
|
@cindex World Wide Web
|
||||||
|
|
|
||||||
15
etc/NEWS
15
etc/NEWS
|
|
@ -495,6 +495,13 @@ the buffer will take you to that directory.
|
||||||
This is a convenience function to extract the field data from
|
This is a convenience function to extract the field data from
|
||||||
'exif-parse-file' and 'exif-parse-buffer'.
|
'exif-parse-file' and 'exif-parse-buffer'.
|
||||||
|
|
||||||
|
** Xwidgets
|
||||||
|
|
||||||
|
*** New minor mode `xwidget-webkit-edit-mode'.
|
||||||
|
When this mode is enabled, self-inserting characters and other common
|
||||||
|
web browser shotcut keys are redefined to send themselves to the
|
||||||
|
WebKit widget.
|
||||||
|
|
||||||
|
|
||||||
* New Modes and Packages in Emacs 29.1
|
* New Modes and Packages in Emacs 29.1
|
||||||
|
|
||||||
|
|
@ -719,6 +726,14 @@ an exact match, then the lowercased '[menu-bar foo\ bar]' and finally
|
||||||
'[menu-bar foo-bar]'. This further improves backwards-compatibility
|
'[menu-bar foo-bar]'. This further improves backwards-compatibility
|
||||||
when converting menus to use 'easy-menu-define'.
|
when converting menus to use 'easy-menu-define'.
|
||||||
|
|
||||||
|
+++
|
||||||
|
** New function `xwidget-perform-lispy-event'.
|
||||||
|
This function allows you to send events to xwidgets. Usually, some
|
||||||
|
equivalent of the event will be sent, but there is no guarantee of
|
||||||
|
what the widget will actually receive.
|
||||||
|
|
||||||
|
On GTK+, only key and function key events are implemented.
|
||||||
|
|
||||||
|
|
||||||
* Changes in Emacs 29.1 on Non-Free Operating Systems
|
* Changes in Emacs 29.1 on Non-Free Operating Systems
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,14 @@ in `split-window-right' with a new xwidget webkit session."
|
||||||
(with-selected-window (split-window-right)
|
(with-selected-window (split-window-right)
|
||||||
(xwidget-webkit-new-session url))))
|
(xwidget-webkit-new-session url))))
|
||||||
|
|
||||||
|
(declare-function xwidget-perform-lispy-event "xwidget.c")
|
||||||
|
|
||||||
|
(defun xwidget-webkit-pass-command-event ()
|
||||||
|
"Pass `last-command-event' to the current buffer's WebKit widget."
|
||||||
|
(interactive)
|
||||||
|
(xwidget-perform-lispy-event (xwidget-webkit-current-session)
|
||||||
|
last-command-event))
|
||||||
|
|
||||||
;;todo.
|
;;todo.
|
||||||
;; - check that the webkit support is compiled in
|
;; - check that the webkit support is compiled in
|
||||||
(defvar xwidget-webkit-mode-map
|
(defvar xwidget-webkit-mode-map
|
||||||
|
|
@ -684,6 +692,44 @@ You can retrieve the value with `xwidget-get'."
|
||||||
(set-xwidget-plist xwidget
|
(set-xwidget-plist xwidget
|
||||||
(plist-put (xwidget-plist xwidget) propname value)))
|
(plist-put (xwidget-plist xwidget) propname value)))
|
||||||
|
|
||||||
|
(defvar xwidget-webkit-edit-mode-map (make-keymap))
|
||||||
|
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [backspace] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [tab] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [left] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [right] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [up] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [down] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [return] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [C-left] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [C-right] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [C-up] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [C-down] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [C-return] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [S-left] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [S-right] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [S-up] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [S-down] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [S-return] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [M-left] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [M-right] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [M-up] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [M-down] 'xwidget-webkit-pass-command-event)
|
||||||
|
(define-key xwidget-webkit-edit-mode-map [M-return] 'xwidget-webkit-pass-command-event)
|
||||||
|
|
||||||
|
(define-minor-mode xwidget-webkit-edit-mode
|
||||||
|
"Minor mode for editing the content of WebKit buffers.
|
||||||
|
|
||||||
|
This defines most self-inserting characters and some common
|
||||||
|
keyboard shortcuts to `xwidget-webkit-pass-command-event', which
|
||||||
|
will pass the key events corresponding to these characters to the
|
||||||
|
WebKit widget."
|
||||||
|
:keymap xwidget-webkit-edit-mode-map)
|
||||||
|
|
||||||
|
(substitute-key-definition 'self-insert-command
|
||||||
|
'xwidget-webkit-pass-command-event
|
||||||
|
xwidget-webkit-edit-mode-map
|
||||||
|
global-map)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue