The following change seems to make the tab faces update properly after clicking a tab. But I'm not sure this is the correct way to do it. > diff --git a/lisp/tab-line.el b/lisp/tab-line.el > index d080da1867..08fb54bbfb 100644 > --- a/lisp/tab-line.el > +++ b/lisp/tab-line.el > @@ -580,12 +580,17 @@ tab-line-select-tab > (tab (get-pos-property 1 'tab (car (posn-string posnp)))) > (buffer (if (bufferp tab) tab (cdr (assq 'buffer tab))))) > (if buffer > - (tab-line-select-tab-buffer buffer (posn-window posnp)) > + (progn > + (tab-line-select-tab-buffer buffer (posn-window posnp)) > + (force-mode-line-update t) > + (set-window-parameter nil 'tab-line-cache nil) > + (setf tab-line-format '(:eval (tab-line-format))) > + ) > (let ((select (cdr (assq 'select tab)))) > (when (functionp select) > (with-selected-window (posn-window posnp) > (funcall select) > - (force-mode-line-update))))))) > + (force-mode-line-update t))))))) > > (defun tab-line-select-tab-buffer (buffer &optional window) > (let* ((window-buffer (window-buffer window)) > On Sat, Dec 7, 2019 at 11:48 AM David O'Toole wrote: > I configured the tab bar and tab line faces (tab-bar-tab and > tab-line-tab-current) to show the currently selected tab with yellow text. > > Although the tab __bar__ faces do update properly to highlight the > selected tab, the tab __line__ faces don't update; no matter which is > clicked, the first tab that had been highlighted stays highlighted (or > sometimes none of them are highlighted.) Also, the close buttons on tab > line tabs do not work; instead it just switches to that tab's buffer. > > My face definitions (in the form of lines from a `custom-set-faces' > call) are below, perhaps I have made them incorrectly. > > '(tab-bar ((t (:height 0.9 :background "grey25" :foreground "gray70")))) > '(tab-bar-tab ((t (:inherit tab-bar :foreground "yellow" :box > (:line-width 1 :style released-button))))) > '(tab-bar-tab-inactive ((t (:inherit tab-bar-tab :background "grey28" > :foreground "gray80")))) > '(tab-line ((t (:background "gray16" :foreground "gray80" :height 0.9)))) > '(tab-line-tab ((t (:inherit tab-line :box (:line-width 1 :style > released-button))))) > '(tab-line-highlight ((t (:inherit tab-line-tab :background "gray40")))) > '(tab-line-tab-current ((t (:inherit tab-line-tab :background "gray35" > :foreground "yellow")))) > '(tab-line-tab-inactive ((t (:inherit tab-line-tab :foreground "gray80" > :background "grey20")))) > > > In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) > of 2019-12-07 built on monad > Repository revision: 959bbf30032c365c9e6f08dc9211d6bab3123f35 > Repository branch: HEAD > Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 > System Description: Linux Mint 19.1 > > Recent messages: > Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help > Global Tab-Line mode enabled > Winner undo (1 / 69) > Winner undo (1 / 71) > Desktop saved in ~/.emacs.d/ > Quit [2 times] > Desktop saved in ~/.emacs.d/ > > Configured using: > 'configure --prefix=/usr/local --with-x-toolkit=gtk3 --with-xwidgets > --with-sound=alsa' > > Configured features: > XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY > GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 > XDBE XIM MODULES THREADS XWIDGETS PDUMPER LCMS2 GMP > > Important settings: > value of $LANG: en_US.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: Emacs-Lisp > > Minor modes in effect: > global-tab-line-mode: t > tab-line-mode: t > display-battery-mode: t > indent-guide-mode: t > desktop-save-mode: t > recentf-mode: t > winner-mode: t > display-time-mode: t > global-magit-file-mode: t > magit-file-mode: t > magit-auto-revert-mode: t > auto-revert-mode: t > global-git-commit-mode: t > async-bytecomp-package-mode: t > shell-dirtrack-mode: t > show-paren-mode: t > override-global-mode: t > global-eldoc-mode: t > eldoc-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > tool-bar-mode: t > tab-bar-mode: t > menu-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > blink-cursor-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > line-number-mode: t > transient-mark-mode: t > > Load-path shadows: > ~/emacs-config/gunmetal-theme hides ~/mosaic/gunmetal-theme > ~/emacs-config/inf-snd hides ~/mosaic/inf-snd > > Features: > (shadow sort mail-extr emacsbug sendmail eieio-opt help-fns radix-tree > cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine > cc-vars cc-defs misearch multi-isearch em-unix em-term term ehelp > em-script em-prompt em-ls em-hist em-pred em-glob em-dirs esh-var > em-cmpl em-basic em-banner em-alias esh-mode eshell esh-cmd esh-ext > esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util > time-stamp cus-edit tab-line ibuf-ext ibuffer ibuffer-loaddefs mule-util > org-element avl-tree ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir > gnus-sum url url-proxy url-privacy url-expand url-methods url-history > mailcap shr url-cookie url-domsuf url-util svg dom gnus-group gnus-undo > gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo > parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus nnheader > ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb > ol-w3m vc-git battery cus-start cus-load exwm-systemtray xcb-systemtray > xcb-xembed exwm-config ido exwm exwm-input xcb-keysyms xcb-xkb > exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout > exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types > xcb-debug gunmetal-theme indent-guide ob-lisp desktop frameset > sr-speedbar init org-mouse org ob ob-tangle ob-ref ob-lob ob-table > ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list > org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval > org-table ol org-keys org-compat org-macs org-loaddefs find-func > cal-menu calendar cal-loaddefs recentf tree-widget dired-x winner time > slime-asdf grep slime-fancy slime-trace-dialog slime-fontifying-fu > slime-package-fu slime-references slime-compiler-notes-tree > slime-scratch slime-presentations bridge slime-macrostep macrostep > slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace > slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc > slime-repl elp slime-parse slime lisp-mnt gud apropos etags fileloop > generator xref project arc-mode archive-mode noutline outline pp > hyperspec thingatpt slime-autoloads org-install magit-submodule > magit-obsolete magit-blame magit-stash magit-reflog magit-bisect > magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit > magit-sequence magit-notes magit-worktree magit-tag magit-merge > magit-branch magit-reset magit-files magit-refs magit-status magit > magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff > smerge-mode diff diff-mode magit-core magit-autorevert autorevert > filenotify magit-margin magit-transient magit-process magit-mode > transient git-commit magit-git magit-section magit-utils crm log-edit > message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa > epg epg-config gnus-util rmail rmail-loaddefs text-property-search > time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 > rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils > mailheader pcvs-util add-log with-editor async-bytecomp async shell > server xelf paren use-package use-package-ensure use-package-delight > use-package-diminish use-package-bind-key bind-key easy-mmode > use-package-core mosaic jeison dash eieio-compat midi-kbd ccl jack rot13 > disp-table ecasound pcomplete notifications dbus xml spectr rx cell > cl-extra help-mode eieio-speedbar speedbar sb-image ezimage dframe > eieio-custom wid-edit eieio-base warnings cl compile nanotag edmacro > kmacro inf-snd derived ruby-mode smie cmuscheme scheme comint ansi-color > ring finder-inf pcase powerline advice powerline-separators color > powerline-themes info package easymenu browse-url url-handlers url-parse > auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs > password-cache json subr-x map url-vars seq byte-opt gv bytecomp > byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify > ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win > term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe > tabulated-list replace newcomment text-mode elisp-mode lisp-mode > prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer > select scroll-bar mouse jit-lock font-lock syntax facemenu font-core > term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang > misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms > cp51932 hebrew greek romanian slovak czech european ethiopic indian > cyrillic chinese composite charscript charprop case-table epa-hook > jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs > button faces cus-face macroexp files text-properties overlay sha1 md5 > base64 format env code-pages mule custom widget hashtable-print-readable > backquote threads dbusbind inotify lcms2 dynamic-setting > system-font-setting font-render-setting xwidget-internal move-toolbar > gtk x-toolkit x multi-tty make-network-process emacs) > > Memory information: > ((conses 16 1110822 155044) > (symbols 48 50782 1) > (strings 32 158855 6437) > (string-bytes 1 5124663) > (vectors 16 97223) > (vector-slots 8 2332726 255286) > (floats 8 32609 140) > (intervals 56 148481 1713) > (buffers 1000 34)) >