From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: "Basil L. Contovounesios" Newsgroups: gmane.emacs.bugs Subject: bug#35565: 27.0.50; gnus-summary-widget-forward error with other frame Date: Sat, 04 May 2019 19:05:47 +0100 Message-ID: <87pnoyumbo.fsf@tcd.ie> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="112820"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Katsumi Yamaoka , Lars Ingebrigtsen To: 35565@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat May 04 20:07:21 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hMz4B-000TCV-1P for geb-bug-gnu-emacs@m.gmane.org; Sat, 04 May 2019 20:07:19 +0200 Original-Received: from localhost ([127.0.0.1]:59627 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMz4A-0004Ha-1S for geb-bug-gnu-emacs@m.gmane.org; Sat, 04 May 2019 14:07:18 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:41752) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMz43-0004HS-TI for bug-gnu-emacs@gnu.org; Sat, 04 May 2019 14:07:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hMz42-0003OQ-Bo for bug-gnu-emacs@gnu.org; Sat, 04 May 2019 14:07:11 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38676) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hMz40-0003Nu-6I for bug-gnu-emacs@gnu.org; Sat, 04 May 2019 14:07:09 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hMz3u-0006XU-1A; Sat, 04 May 2019 14:07:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Basil L. Contovounesios" Original-Sender: "Debbugs-submit" Resent-CC: yamaoka@jpl.org, larsi@gnus.org, bug-gnu-emacs@gnu.org, bugs@gnus.org Resent-Date: Sat, 04 May 2019 18:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 35565 X-GNU-PR-Package: emacs,gnus X-GNU-PR-Keywords: patch X-Debbugs-Original-To: submit@debbugs.gnu.org (The Gnus Bugfixing Girls + Boys) X-Debbugs-Original-Xcc: Katsumi Yamaoka , Lars Ingebrigtsen Original-Received: via spool by submit@debbugs.gnu.org id=B.155699316525051 (code B ref -1); Sat, 04 May 2019 18:07:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 May 2019 18:06:05 +0000 Original-Received: from localhost ([127.0.0.1]:52217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMz2y-0006Vy-GB for submit@debbugs.gnu.org; Sat, 04 May 2019 14:06:05 -0400 Original-Received: from mail-ed1-f51.google.com ([209.85.208.51]:47064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMz2u-0006VK-5j for submit@debbugs.gnu.org; Sat, 04 May 2019 14:06:02 -0400 Original-Received: by mail-ed1-f51.google.com with SMTP id f37so10021699edb.13 for ; Sat, 04 May 2019 11:06:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd-ie.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:user-agent:mime-version; bh=8Ekh8z+YooKL/PE/BddXQexKZzyOkEW1fheohm7EZ3s=; b=FuaB4Tg4HEaYTBDCKZWsARu/Wx8QrN1wkIEBVyTu6twqbREzpmuD4hZ8xRrewAkBKy 92ESdWi6rlRA4uyomQ5iHHLc/SpZohUB08dF26wTkDe3je/x0dlrhmOfPhLWMjlEpjkw 7rAhNhqEwGce52S7YGDlHhCcetDsezYae8xTjOr7PBA4NtO+MVLs9G8f9dasJda0tVDR a7D/2i4p1kSUbJvbowmHaRwxssK7RylQgwow+faxJTL097fAvkS89UCDqjeY7fIza52E 3X9pejjwChyzmEy2uD/6a4xwkzppwGWkst45cY/zQYWdyHyvNgKFIYESyFQsKsEOvjA0 wGpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version; bh=8Ekh8z+YooKL/PE/BddXQexKZzyOkEW1fheohm7EZ3s=; b=bFGPOO64LRuCLpcpJWpOi3FlD59B7k8rbPAf+0263z2aATn9LUTgV/41CgOJSUgmPC 3bmZnsvIOZhFDI6tf5QwVzFJaawxqw1xVTKDXyccHsd+pIrb7qW2KcUuat8ZOoRrA9sJ HH0qpMJi6jdNcZkZJFPzq9DmUq3bkrYtjxYala3RrS/9Nl+bQuAXjy6oTCbGAXmDOvw6 Nhe4Biguts3NWXxVzyi3v9hEOqL8itwcGXDJJGZrxFrVO8DqXoM3qQp8yVNKgO6ND0h6 SvtXR8nyvbCQw7wQQdNzFVb8xBj+GI1lRREdkgPM2GAibWZaIk9Pp744k4v49i5ymJ0T bE/w== X-Gm-Message-State: APjAAAU59QPYzqt5A+0pWSeMvkQfeTfKmaYV22S1uDqsesS+IFnRAS5x 5r6MQ//hi1YQfJgRbPsquZEo/JNP62g= X-Google-Smtp-Source: APXvYqz4FoupFPHhE76wuJLXpriJ27Dxk/PRzK4nAnUk/6tts3PSvVw0ByUNaCaKG0xdByw6zMiPeQ== X-Received: by 2002:a17:906:3009:: with SMTP id 9mr11896421ejz.157.1556993154137; Sat, 04 May 2019 11:05:54 -0700 (PDT) Original-Received: from localhost ([2a02:8084:20e2:c380:8cad:ae29:555d:852d]) by smtp.gmail.com with ESMTPSA id n7sm802588ejk.72.2019.05.04.11.05.52 for (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Sat, 04 May 2019 11:05:53 -0700 (PDT) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:158754 Archived-At: --=-=-= Content-Type: text/plain Tags: patch --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Fix-Gnus-summary-widget-navigation-across-frames.patch >From 4190fec56ebd413e0e398d23edb55b89772ae1d0 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Sat, 4 May 2019 16:29:39 +0100 Subject: [PATCH] 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. * lisp/gnus/gnus-win.el (gnus-get-buffer-window): Simplify and add docstring. --- lisp/gnus/gnus-sum.el | 18 ++++++++++++------ lisp/gnus/gnus-win.el | 19 ++++++++++--------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index b8aa302f11..ac222acfd2 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -9423,8 +9423,11 @@ gnus-summary-widget-forward (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 @@ gnus-summary-widget-backward (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. diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index 5f7154c545..a992fe731c 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -28,6 +28,7 @@ (require 'gnus) (require 'gnus-util) +(require 'seq) (defgroup gnus-windows nil "Window configuration." @@ -509,15 +510,15 @@ gnus-remove-some-windows (delq lowest-buf bufs))))) (defun gnus-get-buffer-window (buffer &optional frame) - (cond ((and (null gnus-use-frames-on-any-display) - (memq frame '(t 0 visible))) - (car - (let ((frames (frames-on-display-list))) - (seq-remove (lambda (win) (not (memq (window-frame win) - frames))) - (get-buffer-window-list buffer nil frame))))) - (t - (get-buffer-window buffer frame)))) + "Return a window currently displaying BUFFER, or nil if none. +Like `get-buffer-window', but respecting +`gnus-use-frames-on-any-display'." + (if (and (not gnus-use-frames-on-any-display) + (memq frame '(t 0 visible))) + (let ((frames (frames-on-display-list))) + (seq-find (lambda (win) (memq (window-frame win) frames)) + (get-buffer-window-list buffer nil frame))) + (get-buffer-window buffer frame))) (provide 'gnus-win) -- 2.20.1 --=-=-= Content-Type: text/plain Since at least Emacs 24.4, the commands gnus-summary-widget-forward and gnus-summary-widget-backward have been signalling an error in multiframe configurations: 0. HOME=$(mktemp -d) emacs -Q 1. (progn (setq debug-on-error t gnus-select-method '(nntp "news.gwene.org")) (gnus-add-configuration '(article (frame 1.0 (summary 1.0 point frame-focus) (article 1.0))))) 2. C-j 3. M-x gnus RET 4. s [session only] 5. ^ [gnus-group-enter-server-mode] 6. n [goto nntp:news.gwene.org] 7. RET [gnus-server-read-server] 8. C-s gmane.emacs.devel RET 9. u [gnus-browse-unsubscribe-current-group] 10. q [gnus-browse-exit] 11. q [gnus-server-exit] 12. RET 1 RET [gnus-group-select-group] 13. TAB [gnus-summary-widget-forward] Debugger entered--Lisp error: (wrong-type-argument window-live-p nil) select-window(nil) gnus-summary-widget-forward(1) funcall-interactively(gnus-summary-widget-forward 1) call-interactively(gnus-summary-widget-forward nil nil) command-execute(gnus-summary-widget-forward) Is it okay to push the attached fix, which additionally simplifies the subroutine gnus-get-buffer-window used by the two commands? Thanks, -- Basil Gnus v5.13 In GNU Emacs 27.0.50 (build 14, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2019-05-04 built on thunk Repository revision: b5376e0ebd7b62f00c1b64aef87cd8d96cfbc71a Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12003000 System Description: Debian GNU/Linux buster/sid --=-=-=--