Subject: Re: bug#46299: 28.0.50; Value of tab-bar-show not respected in new frames.

From: Juri Linkov <[email-masked]>
Date: Mon, 08 Feb 2021 20:19:12 +0200

Hello Bastian,

> I have tried to clean up my patch a bit more, please see the attached version 3.

Thanks, everything looks right, except one thing that you removed
the most important rule:

> -    (cond
> -     ((eq tab-bar-show t)
> -      (tab-bar-mode 1))

This is the core reason of existence of tab-bar-show separate from tab-bar-mode:
when the user creates a new tab, the tab-bar should be activated,
unless the user has customized tab-bar-show to nil.

Actually, a more proper condition should be:

  (when tab-bar-show
    (tab-bar-mode 1))

and then after that you can use the remaining code:

> +    ;; Recalculate tab-bar-lines and update frames
> +    (tab-bar--update-tab-bar-lines (selected-frame))
> +    (when tab-bar-mode
> +      (tab-bar--load-buttons)
> +      (tab-bar--define-keys))

In tab-bar-close-other-tabs:

> +      ;; Recalculate tab-bar-lines and update frames
> +      (tab-bar--update-tab-bar-lines)

It could affect only the selected frame too, i.e.:
(tab-bar--update-tab-bar-lines (selected-frame))