[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master eabd735 32/35: Default to creating new related sessions
From: |
Lars Ingebrigtsen |
Subject: |
master eabd735 32/35: Default to creating new related sessions |
Date: |
Sat, 6 Nov 2021 22:02:00 -0400 (EDT) |
branch: master
commit eabd735e6c9f8f0ea87749beba6a37e2f6db6745
Author: Po Lu <luangruo@yahoo.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Default to creating new related sessions
* doc/lispref/display.texi:
* etc/NEWS: Document changes.
* lisp/xwidget.el (xwidget-insert): Accept an extra RELATED argument.
(xwidget-webkit-new-session): Pass current session as RELATED if
present.
* src/xwidget.c (Fmake_xwidget): Make RELATED argument public.
---
doc/lispref/display.texi | 5 +++--
etc/NEWS | 6 ++++++
lisp/xwidget.el | 12 +++++++-----
src/xwidget.c | 3 ++-
4 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 37f07c4..60bca15 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -6801,8 +6801,9 @@ The WebKit component.
The @var{width} and @var{height} arguments specify the widget size in
pixels, and @var{title}, a string, specifies its title. @var{related}
-is used internally by the WebKit widget, and is not of interest to the
-programmer.
+is used internally by the WebKit widget, and specifies another WebKit
+widget that the newly created widget should share settings and
+subprocesses with.
@end defun
@defun xwidgetp object
diff --git a/etc/NEWS b/etc/NEWS
index 0e5caa4..b14f9a2 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -745,6 +745,12 @@ an exact match, then the lowercased '[menu-bar foo\ bar]'
and finally
when converting menus to use 'easy-menu-define'.
+++
+** The function `make-xwidget' now accepts an optional RELATED argument.
+This argument is used as another widget for the newly created WebKit
+widget to share settings and subprocesses with. It must be another
+WebKit widget.
+
++++
** 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
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index d427e70..c17229d 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -35,7 +35,7 @@
(require 'bookmark)
(declare-function make-xwidget "xwidget.c"
- (type title width height arguments &optional buffer))
+ (type title width height arguments &optional buffer related))
(declare-function xwidget-buffer "xwidget.c" (xwidget))
(declare-function set-xwidget-buffer "xwidget.c" (xwidget buffer))
(declare-function xwidget-size-request "xwidget.c" (xwidget))
@@ -59,14 +59,14 @@
"Displaying native widgets in Emacs buffers."
:group 'widgets)
-(defun xwidget-insert (pos type title width height &optional args)
+(defun xwidget-insert (pos type title width height &optional args related)
"Insert an xwidget at position POS.
-Supply the xwidget's TYPE, TITLE, WIDTH, and HEIGHT.
+Supply the xwidget's TYPE, TITLE, WIDTH, HEIGHT, and RELATED.
See `make-xwidget' for the possible TYPE values.
The usage of optional argument ARGS depends on the xwidget.
This returns the result of `make-xwidget'."
(goto-char pos)
- (let ((id (make-xwidget type title width height args)))
+ (let ((id (make-xwidget type title width height args nil related)))
(put-text-property (point) (+ 1 (point))
'display (list 'xwidget ':xwidget id))
id))
@@ -685,6 +685,7 @@ For example, use this to display an anchor."
(let*
((bufname (generate-new-buffer-name "*xwidget-webkit*"))
(callback (or callback #'xwidget-webkit-callback))
+ (current-session (xwidget-webkit-current-session))
xw)
(setq xwidget-webkit-last-session-buffer (switch-to-buffer
(get-buffer-create bufname)))
@@ -697,7 +698,8 @@ For example, use this to display an anchor."
(setq xw (xwidget-insert
start 'webkit bufname
(xwidget-window-inside-pixel-width (selected-window))
- (xwidget-window-inside-pixel-height (selected-window)))))
+ (xwidget-window-inside-pixel-height (selected-window))
+ nil current-session)))
(xwidget-put xw 'callback callback)
(xwidget-webkit-mode)
(xwidget-webkit-goto-uri (xwidget-webkit-last-session) url)))
diff --git a/src/xwidget.c b/src/xwidget.c
index bf69f26..5f013b7 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -110,7 +110,8 @@ TYPE is a symbol which can take one of the following values:
- webkit
-RELATED is nil, or an xwidget. This argument is used internally.
+RELATED is nil, or an xwidget. When constructing a WebKit widget, it
+will share the same settings and internal subprocess as RELATED.
Returns the newly constructed xwidget, or nil if construction
fails. */)
(Lisp_Object type,
- master cd7158e 18/35: Add new tool-bar items to xwidget-webkit, (continued)
- master cd7158e 18/35: Add new tool-bar items to xwidget-webkit, Lars Ingebrigtsen, 2021/11/06
- master 8729ae2 19/35: Add xwidget-webkit-copy-selection-as-kill to the menu bar, Lars Ingebrigtsen, 2021/11/06
- master 1cc19d0 23/35: Add support for cursors in xwidget views, Lars Ingebrigtsen, 2021/11/06
- master cb45114 26/35: Make it safe to have non-xwidget views in xwidget-view-list, Lars Ingebrigtsen, 2021/11/06
- master 286467a 27/35: Add functions for performing searches on xwidgets, Lars Ingebrigtsen, 2021/11/06
- master 0be966f 30/35: Make "open in new window" from an xwidget's context menu work, Lars Ingebrigtsen, 2021/11/06
- master 686ce50 31/35: Rationalize creation decisions, Lars Ingebrigtsen, 2021/11/06
- master 3e04f1f 33/35: Fix web inspector, Lars Ingebrigtsen, 2021/11/06
- master 969ce9d 34/35: Improve xwidget isearch visuals, Lars Ingebrigtsen, 2021/11/06
- master cd1f02e 25/35: Make xwidgets print nicer, Lars Ingebrigtsen, 2021/11/06
- master eabd735 32/35: Default to creating new related sessions,
Lars Ingebrigtsen <=
- master 5b7ab89 35/35: Fix build on nextstep, Lars Ingebrigtsen, 2021/11/06