* lisp/tab-bar.el (tab-bar-move-tab-to-group): Fix for a new group's tab.
authorJuri Linkov <juri@linkov.net>
Mon, 29 Jul 2024 18:16:16 +0000 (21:16 +0300)
committerJuri Linkov <juri@linkov.net>
Mon, 29 Jul 2024 18:16:16 +0000 (21:16 +0300)
Move tab with a new group to the end of the tab bar (bug#72352)
Suggested by Ship Mints <shipmints@gmail.com>

lisp/tab-bar.el

index edec6543a82c1489709e0bbc5ec4173613512686..60d5bbf169b4520414afb6cfbcf5d391fe8d0e55 100644 (file)
@@ -2229,14 +2229,16 @@ function `tab-bar-tab-name-function'."
                 (seq-position (nthcdr beg tabs) group
                               (lambda (tb gr)
                                 (not (equal (alist-get 'group tb) gr))))))
-         (pos (when beg
-                (cond
-                 ;; Don't move tab when it's already inside group bounds
-                 ((and len (>= tab-index beg) (<= tab-index (+ beg len))) nil)
-                 ;; Move tab from the right to the group end
-                 ((and len (> tab-index (+ beg len))) (+ beg len 1))
-                 ;; Move tab from the left to the group beginning
-                 ((< tab-index beg) beg)))))
+         (pos (if beg
+                  (cond
+                   ;; Don't move tab when it's already inside group bounds
+                   ((and len (>= tab-index beg) (<= tab-index (+ beg len))) nil)
+                   ;; Move tab from the right to the group end
+                   ((and len (> tab-index (+ beg len))) (+ beg len 1))
+                   ;; Move tab from the left to the group beginning
+                   ((< tab-index beg) beg))
+                ;; Move tab with a new group to the end
+                -1)))
     (when pos
       (tab-bar-move-tab-to pos (1+ tab-index)))))