unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#38522: 27.0.50; tab-line faces don't update to reflect selected tab
@ 2019-12-07 16:48 David O'Toole
  2019-12-07 17:54 ` bug#38523: " David O'Toole
  2019-12-08 22:09 ` bug#38522: " Juri Linkov
  0 siblings, 2 replies; 7+ messages in thread
From: David O'Toole @ 2019-12-07 16:48 UTC (permalink / raw)
  To: 38522

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

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: 9036 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#38523: 27.0.50; tab-line faces don't update to reflect selected tab
  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
  2020-10-30 15:41   ` Lars Ingebrigtsen
  2019-12-08 22:09 ` bug#38522: " Juri Linkov
  1 sibling, 1 reply; 7+ messages in thread
From: David O'Toole @ 2019-12-07 17:54 UTC (permalink / raw)
  To: 38523

[-- 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 --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#38522: 27.0.50; tab-line faces don't update to reflect selected tab
  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 ` bug#38523: " David O'Toole
@ 2019-12-08 22:09 ` Juri Linkov
  2019-12-09 22:23   ` David O'Toole
  1 sibling, 1 reply; 7+ messages in thread
From: Juri Linkov @ 2019-12-08 22:09 UTC (permalink / raw)
  To: David O'Toole; +Cc: 38522

> 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.)

Thanks for the report.  This is fixed now in master.

> Also, the close buttons on tab line tabs do not work; instead it just
> switches to that tab's buffer.

Hmm, the close buttons worked before the fix as well as after.
Could you please check again.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#38522: 27.0.50; tab-line faces don't update to reflect selected tab
  2019-12-08 22:09 ` bug#38522: " Juri Linkov
@ 2019-12-09 22:23   ` David O'Toole
  0 siblings, 0 replies; 7+ messages in thread
From: David O'Toole @ 2019-12-09 22:23 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 38522

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

Everything seems to work fine now. Thank you!

On Sun, Dec 8, 2019 at 5:10 PM Juri Linkov <juri@linkov.net> 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.)
>
> Thanks for the report.  This is fixed now in master.
>
> > Also, the close buttons on tab line tabs do not work; instead it just
> > switches to that tab's buffer.
>
> Hmm, the close buttons worked before the fix as well as after.
> Could you please check again.
>

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#38523: 27.0.50; tab-line faces don't update to reflect selected tab
  2019-12-07 17:54 ` bug#38523: " David O'Toole
@ 2020-10-30 15:41   ` Lars Ingebrigtsen
  2020-12-23 21:08     ` Juri Linkov
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2020-10-30 15:41 UTC (permalink / raw)
  To: David O'Toole; +Cc: 38523, juri

"David O'Toole" <deeteeoh1138@gmail.com> writes:

> 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.

[...]

>  +        (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)))

No, I have a feeling that may be too heavy-handed.

>  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.

Perhaps Juri has some insight here (added to the Cc).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#38523: 27.0.50; tab-line faces don't update to reflect selected tab
  2020-10-30 15:41   ` Lars Ingebrigtsen
@ 2020-12-23 21:08     ` Juri Linkov
  2021-01-06 17:50       ` Juri Linkov
  0 siblings, 1 reply; 7+ messages in thread
From: Juri Linkov @ 2020-12-23 21:08 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: David O'Toole, 38523

>> 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.
>
> [...]
>
>>  +        (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)))
>
> No, I have a feeling that may be too heavy-handed.
>
>>  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.
>
> Perhaps Juri has some insight here (added to the Cc).

Sorry for the delay.  Now I pushed to master a patch from emacs-devel
that improves tab-line face calculation logic.

David, could you please confirm if everything works correctly now.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#38523: 27.0.50; tab-line faces don't update to reflect selected tab
  2020-12-23 21:08     ` Juri Linkov
@ 2021-01-06 17:50       ` Juri Linkov
  0 siblings, 0 replies; 7+ messages in thread
From: Juri Linkov @ 2021-01-06 17:50 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: David O'Toole, 38523

tags 38523 fixed
close 38523 28.0.50
thanks

It seems everything is fixed in this bug report.
If not, then please reopen it.





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-06 17:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` bug#38523: " David O'Toole
2020-10-30 15:41   ` 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

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).