]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/tab-line.el: Support non-buffer tabs in some tab face functions.
authorJuri Linkov <juri@linkov.net>
Tue, 1 Feb 2022 19:42:51 +0000 (21:42 +0200)
committerJuri Linkov <juri@linkov.net>
Tue, 1 Feb 2022 19:42:51 +0000 (21:42 +0200)
(tab-line-tab-face-special, tab-line-tab-face-modified): For non-buffer tabs
when 'tab-line-tabs-function' is e.g. 'tab-line-tabs-buffer-groups',
try to get the buffer from the property 'buffer'.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01923.html

lisp/tab-line.el

index 1c1217cdf6e92f3027ec6cba6ed4dbedd6608519..24033945f09c6cd46d0fd1d57c18cd070054ff77 100644 (file)
@@ -558,8 +558,9 @@ inherit from `tab-line-tab-inactive-alternate'.  For use in
 When TAB is a non-file-visiting buffer, make FACE inherit from
 `tab-line-tab-special'.  For use in
 `tab-line-tab-face-functions'."
-  (when (and buffer-p (not (buffer-file-name tab)))
-    (setf face `(:inherit (tab-line-tab-special ,face))))
+  (let ((buffer (if buffer-p tab (cdr (assq 'buffer tab)))))
+    (when (and buffer (not (buffer-file-name buffer)))
+      (setf face `(:inherit (tab-line-tab-special ,face)))))
   face)
 
 (defun tab-line-tab-face-modified (tab _tabs face buffer-p _selected-p)
@@ -567,8 +568,9 @@ When TAB is a non-file-visiting buffer, make FACE inherit from
 When TAB is a modified, file-backed buffer, make FACE inherit
 from `tab-line-tab-modified'.  For use in
 `tab-line-tab-face-functions'."
-  (when (and buffer-p (buffer-file-name tab) (buffer-modified-p tab))
-    (setf face `(:inherit (tab-line-tab-modified ,face))))
+  (let ((buffer (if buffer-p tab (cdr (assq 'buffer tab)))))
+    (when (and buffer (buffer-file-name buffer) (buffer-modified-p buffer))
+      (setf face `(:inherit (tab-line-tab-modified ,face)))))
   face)
 
 (defun tab-line-tab-face-group (tab _tabs face _buffer-p _selected-p)