all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "David O'Toole" <deeteeoh1138@gmail.com>
To: 38523@debbugs.gnu.org
Subject: bug#38523: 27.0.50; tab-line faces don't update to reflect selected tab
Date: Sat, 7 Dec 2019 12:54:02 -0500	[thread overview]
Message-ID: <CAAz1J501=J_-4Vh4FJerdr_Mf6gjz++EMQqQC8O66pJhnRESWA@mail.gmail.com> (raw)
In-Reply-To: <CAAz1J50L72UA9FvMZErsnvzM7sRDJ+6mO8JohsWW1FOp5cq+eg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 9880 bytes --]

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 <deeteeoh1138@gmail.com>
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))
>

[-- Attachment #2: Type: text/html, Size: 10892 bytes --]

  reply	other threads:[~2019-12-07 17:54 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-07 16:48 bug#38522: 27.0.50; tab-line faces don't update to reflect selected tab David O'Toole
2019-12-07 17:54 ` David O'Toole [this message]
2020-10-30 15:41   ` bug#38523: " Lars Ingebrigtsen
2020-12-23 21:08     ` Juri Linkov
2021-01-06 17:50       ` Juri Linkov
2019-12-08 22:09 ` bug#38522: " Juri Linkov
2019-12-09 22:23   ` David O'Toole

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAAz1J501=J_-4Vh4FJerdr_Mf6gjz++EMQqQC8O66pJhnRESWA@mail.gmail.com' \
    --to=deeteeoh1138@gmail.com \
    --cc=38523@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.