Subject: Re: bug#60210: 30.0.50; tab-bar height not recalculated when face changes

From: Gregory Heytings <[email-masked]>
Date: Sun, 01 Jan 2023 17:56:36 +0000

>
> Thanks!  Pushed (b14bbd108e), and closing.
>

I got (privately) an interesting bug report about this commit.  The bug is 
that, because of this change, the tab-bar is not displayed anymore (or is 
displayed but stays empty) in certain circumstances.  It's a font-related 
bug again, so it might be difficult to reproduce.  On my system,

(set-face-attribute 'default nil :font "JetBrains Mono")
(tab-bar-mode 1)

triggers the bug.

The bug is that, in redisplay_tab_bar, WINDOW_PIXEL_HEIGHT (w) uses the 
height of the default face, which is 39 pixels, whereas new_height, which 
is computed with tab_bar_height, uses the font of the tab-bar face 
(variable-pitch in emacs -Q).  On my system, new_height is (with a single 
*scratch* tab) 36 pixels.  Therefore new_height < WINDOW_PIXEL_HEIGHT (w), 
when in fact according to the logic of the code we should have new_height 
== WINDOW_PIXEL_HEIGHT (w).