It's MAYBE a bug#62575 ( reported 2023-03-31 )
Below the steps required to reproduce the "bug":
- ~ $ emacs -Q
- Menu -> Options -> Show/Hide -> Tab Bar (gives Tab scratch)
- 1x click on rightmost * in the Tab Bar to create a new Tab (gives 2x scratch Tabs)
- With the rightmost (second) Tab open ~/.emacs (gives 1x scratch and 1x .emacs Tabs)
- 2x click on rightmost * in the Tab Bar to create twp new Tabs (gives 1x scratch and 3x .emacs Tabs)
- with rightmost Tab active kill the .emacs buffer [C-x k] (the Tabs label turns to *scratch the other two Tabs labeled .emacs keep their labels, so there are 1x scratch, 2x .emacs, 1x scratch Tabs)
- click the second Tab labeled .emacs' (result: the label of the Tab turns to Messages. the Tab Bar shows scratch Messages .emacs scratch )
The bug: the third Tab still keeps its .emacs label and the click on the second Tab labeled .emacs does not show the .emacs file, but the buffer Messages.
Below a patch you can place in the Emacs initialization file which will update Tab Bar Tabs labels on killing a buffer (provided by the Emacs development team):
(add-hook 'kill-buffer-hook
(lambda ()
(let ((tabs (reverse
(mapcar (lambda (tab) (1+ (alist-get 'index tab)))
(tab-bar-get-buffer-tab nil t nil t)))))
(run-with-timer
0 nil
(lambda (tabs) (dolist (tab tabs) (tab-bar-select-tab tab)))
tabs))))
Below the responses from the Emacs development team:
Can reproduce in 30 (db7e95531ac36ae842787b6c5f2859d0642c78cc) and 28.2
(tagged) -- so even if this is a regression, it would not be a recent
one.
Essentially, the reported bug can be summarized as: the tab names on a
tab bar do not respond to situations where a buffer has been deleted.
In addition, I noticed that this behavior extends to renaming a buffer
as well (tried it in 30, not in 28.2). The reproducer is to replace (6)
above with the following, and observe that the other tabs do not update
their names until you click on them.
C-x x r hello RET
After looking at the code, I'm not sure this is a bug. The tab names are just labels, although they are conveniently set to the name of the buffer in the window to be selected when the tab is current. But otherwise they are just labels. When you click on the tab, its name is updated to reflect the buffer shown in the selected window, so I think Emacs is behaving correctly, although it might be a bit
unexpected.
M-x report-emacs-bug
. In the past, I have also used the developer mailing list for certain questions about potential bugs, versus features ... In either case, be prepared to always spend time with the developers subsequent to filing any bug report to help track down the issue and test potential fixes, etc.tab-bar-mode
but from what I read in the Emacs manual, it has to do with window configurations rather than buffers. There is a different facility of (per-window)tab-lines
that has to do with buffers. At this point, I am inclined to believe that it is a misunderstanding of whattab-bar-mode
does, rather than a bug, but I don't know enough about it to say for sure.