summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-sum.el
diff options
context:
space:
mode:
authorBasil L. Contovounesios <contovob@tcd.ie>2019-05-04 16:29:39 +0100
committerBasil L. Contovounesios <contovob@tcd.ie>2019-05-12 12:47:56 +0100
commit571d802df38cb1d3f93222f2977b766995616ac7 (patch)
treed32380deb818d4d7b6d90457d1a31977de60dbe3 /lisp/gnus/gnus-sum.el
parentbb60144d00fce90d7db1fdb5b67d6aa266e5010a (diff)
downloademacs-571d802df38cb1d3f93222f2977b766995616ac7.tar.gz
Fix Gnus summary widget navigation across frames
* lisp/gnus/gnus-sum.el (gnus-summary-widget-forward) (gnus-summary-widget-backward): Signal more informative error if article window is not found. Consider other frames displaying article buffer, and raise its frame before navigating its widgets. (bug#35565) * lisp/gnus/gnus-win.el (gnus-get-buffer-window): Simplify and add docstring.
Diffstat (limited to 'lisp/gnus/gnus-sum.el')
-rw-r--r--lisp/gnus/gnus-sum.el18
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index b8aa302f11a..ac222acfd2d 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -9423,8 +9423,11 @@ With optional ARG, move across that many fields."
(interactive "p")
(gnus-summary-select-article)
(gnus-configure-windows 'article)
- (select-window (gnus-get-buffer-window gnus-article-buffer))
- (widget-forward arg))
+ (let ((win (or (gnus-get-buffer-window gnus-article-buffer t)
+ (error "No article window found"))))
+ (select-window win)
+ (select-frame-set-input-focus (window-frame win))
+ (widget-forward arg)))
(defun gnus-summary-widget-backward (arg)
"Move point to the previous field or button in the article.
@@ -9432,10 +9435,13 @@ With optional ARG, move across that many fields."
(interactive "p")
(gnus-summary-select-article)
(gnus-configure-windows 'article)
- (select-window (gnus-get-buffer-window gnus-article-buffer))
- (unless (widget-at (point))
- (goto-char (point-max)))
- (widget-backward arg))
+ (let ((win (or (gnus-get-buffer-window gnus-article-buffer t)
+ (error "No article window found"))))
+ (select-window win)
+ (select-frame-set-input-focus (window-frame win))
+ (unless (widget-at (point))
+ (goto-char (point-max)))
+ (widget-backward arg)))
(defun gnus-summary-isearch-article (&optional regexp-p)
"Do incremental search forward on the current article.