summaryrefslogtreecommitdiff
path: root/lisp/tab-bar.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2023-07-07 10:18:43 +0300
committerJuri Linkov <juri@linkov.net>2023-07-07 10:18:43 +0300
commit51807e12dacbc1abc238ebafb4ba20e27f4bcc81 (patch)
treecac0ac7af15e326b41dc33230405f54098246bec /lisp/tab-bar.el
parent0522049864951fcb1231e80725a3c8d7d88605c6 (diff)
downloademacs-51807e12dacbc1abc238ebafb4ba20e27f4bcc81.tar.gz
* lisp/tab-bar.el: Fix tab-bar-tab-name-current for active minibuffer.
(tab-bar-tab-name-current): Use get-mru-window in the active minibuffer when minibuffer-selected-window is nil after switching to another tab. (tab-bar-tab-name-current-with-count) (tab-bar-tab-name-truncated): Use tab-bar-tab-name-current.
Diffstat (limited to 'lisp/tab-bar.el')
-rw-r--r--lisp/tab-bar.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index f47c4a7bb6c..14b340f6183 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -618,13 +618,18 @@ from all windows in the window configuration."
(defun tab-bar-tab-name-current ()
"Generate tab name from the buffer of the selected window."
- (buffer-name (window-buffer (minibuffer-selected-window))))
+ ;; `minibuffer-selected-window' loses its original window
+ ;; after switching to another tab while the minibuffer was active,
+ ;; so get the most recently used non-minibuffer window.
+ (buffer-name (window-buffer (or (minibuffer-selected-window)
+ (and (window-minibuffer-p)
+ (get-mru-window))))))
(defun tab-bar-tab-name-current-with-count ()
"Generate tab name from the buffer of the selected window.
Also add the number of windows in the window configuration."
(let ((count (length (window-list-1 nil 'nomini)))
- (name (window-buffer (minibuffer-selected-window))))
+ (name (tab-bar-tab-name-current)))
(if (> count 1)
(format "%s (%d)" name count)
(format "%s" name))))
@@ -651,7 +656,7 @@ to `tab-bar-tab-name-truncated'."
"Generate tab name from the buffer of the selected window.
Truncate it to the length specified by `tab-bar-tab-name-truncated-max'.
Append ellipsis `tab-bar-tab-name-ellipsis' in this case."
- (let ((tab-name (buffer-name (window-buffer (minibuffer-selected-window)))))
+ (let ((tab-name (tab-bar-tab-name-current)))
(if (< (length tab-name) tab-bar-tab-name-truncated-max)
tab-name
(propertize (truncate-string-to-width