]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't unhide first thread if entering without selecting article
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 24 Oct 2021 18:25:12 +0000 (20:25 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 24 Oct 2021 18:25:12 +0000 (20:25 +0200)
* lisp/gnus/gnus-sum.el (gnus-summary-first-unread-subject)
(gnus-summary-first-unseen-subject)
(gnus-summary-first-unseen-or-unread-subject): Use it.
(gnus-summary--goto-and-possibly-unhide): New function -- don't
unhide the first thread unless necessary (bug#51344).

lisp/gnus/gnus-sum.el

index ab8c578c9cdac64d7d69fc9d6c991f1bf0fe47d7..f7385d19c8d19ff7da4307cefbe1e188b06db3ce 100644 (file)
@@ -8064,9 +8064,7 @@ Return nil if there are no unread articles."
 Return nil if there are no unread articles."
   (interactive nil gnus-summary-mode)
   (prog1
-      (when (gnus-summary-first-subject t)
-       (gnus-summary-show-thread)
-       (gnus-summary-first-subject t))
+      (gnus-summary--goto-and-possibly-unhide t)
     (gnus-summary-position-point)))
 
 (defun gnus-summary-next-unseen-article (&optional backward)
@@ -8100,23 +8098,27 @@ Return nil if there are no unread articles."
 Return nil if there are no unseen articles."
   (interactive nil gnus-summary-mode)
   (prog1
-      (when (gnus-summary-first-subject nil nil t)
-       (gnus-summary-show-thread)
-       (gnus-summary-first-subject nil nil t))
+      (gnus-summary--goto-and-possibly-unhide)
     (gnus-summary-position-point)))
 
+(defun gnus-summary--goto-and-possibly-unhide (&optional unread undownloaded
+                                                         unseen)
+  (let ((first (gnus-summary-first-subject unread undownloaded unseen)))
+    (if (and first
+             (not (= first (gnus-summary-article-number))))
+        (progn
+          (gnus-summary-show-thread)
+          (gnus-summary-first-subject unread undownloaded unseen))
+      first)))
+
 (defun gnus-summary-first-unseen-or-unread-subject ()
   "Place the point on the subject line of the first unseen and unread article.
 If all articles have been seen, on the subject line of the first unread
 article."
   (interactive nil gnus-summary-mode)
   (prog1
-      (unless (when (gnus-summary-first-subject nil nil t)
-               (gnus-summary-show-thread)
-               (gnus-summary-first-subject nil nil t))
-       (when (gnus-summary-first-subject t)
-         (gnus-summary-show-thread)
-         (gnus-summary-first-subject t)))
+      (unless (gnus-summary--goto-and-possibly-unhide nil nil t)
+        (gnus-summary-first-subject t))
     (gnus-summary-position-point)))
 
 (defun gnus-summary-first-article ()