]> git.eshelyaron.com Git - emacs.git/commitdiff
Restore point in summary buffer after sorting
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 12 Apr 2018 17:36:28 +0000 (19:36 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 12 Apr 2018 17:36:28 +0000 (19:36 +0200)
* lisp/gnus/gnus-sum.el (gnus-summary-sort): Keep point on the
current article when sorting (bug#30615).

lisp/gnus/gnus-sum.el

index e3cc1928d57471c5f8b773e0c8342aa2f02eba1f..cb262406617f34d2b67f55ce72d595190f28f6eb 100644 (file)
@@ -11989,7 +11989,8 @@ Argument REVERSE means reverse order."
 
 (defun gnus-summary-sort (predicate reverse)
   "Sort summary buffer by PREDICATE.  REVERSE means reverse order."
-  (let* ((thread (intern (format "gnus-thread-sort-by-%s" predicate)))
+  (let* ((current (gnus-summary-article-number))
+        (thread (intern (format "gnus-thread-sort-by-%s" predicate)))
         (article (intern (format "gnus-article-sort-by-%s" predicate)))
         (gnus-thread-sort-functions
          (if (not reverse)
@@ -12008,7 +12009,9 @@ Argument REVERSE means reverse order."
     ;; We do the sorting by regenerating the threads.
     (gnus-summary-prepare)
     ;; Hide subthreads if needed.
-    (gnus-summary-maybe-hide-threads)))
+    (gnus-summary-maybe-hide-threads)
+    ;; Restore point.
+    (gnus-summary-goto-subject current)))
 
 ;; Summary saving commands.