* lisp/tab-bar.el (tab-bar-move-tab-to-group): Fix for a new group's tab.

Move tab with a new group to the end of the tab bar (bug#72352)
Suggested by Ship Mints <shipmints@gmail.com>
This commit is contained in:
Juri Linkov 2024-07-29 21:16:16 +03:00
parent 5cf64d8377
commit abefd9514b

View file

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