Subject: bug#60585: 30.0.50; global-text-scale-adjust shrinks window (was not before), was: Re: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong

From: martin rudalics <[email-masked]>
Date: Fri, 24 Feb 2023 18:54:42 +0100

> And it does have a thumb when the buffer is taller than the
 > window. Sometimes the thumb gets bigger and sometimes smaller,
 > though. That's a little odd. Perhaps it works off the number of
 > visible characters rather than lines.

Interesting.  I've never seen such behavior.

 > InconsolataLGC:
 >
 > (set-face-attribute 'default nil :family "InconsolataLGC")
 >
 > (gdb) p font->average_width
 > $1 = 21
 > (gdb) p font_ascent
 > $2 = 37
 > (gdb) p font_descent
 > $3 = 8
 >
 > (set-face-attribute 'default nil :height 110)
 >
 > (gdb) p font->average_width
 > $7 = 17
 > (gdb) p font_ascent
 > $8 = 31
 > (gdb) p font_descent
 > $9 = 6
 >
 > Now the reverse:
 >
 > (set-face-attribute 'default nil :height 110)
 >
 > (gdb) p font->average_width
 > $10 = 15
 > (gdb) p font_ascent
 > $11 = 25
 > (gdb) p font_descent
 > $12 = 5
 >
 > (set-face-attribute 'default nil :family "InconsolataLGC")
 >
 > (gdb) p font->average_width
 > $13 = 17
 > (gdb) p font_ascent
 > $14 = 31
 > (gdb) p font_descent
 > $15 = 6
 >
 > (I did restart Emacs between tries, just not GDB.)
 >
 > Inconsolata LGC:
 >
 > All exactly the same. Omitted to save space.

There's one thing that we haven't checked yet and I don't know how to do
that.  When you evaluate :height first you get a line height of 30 which
scaling should reduce to 15 without loss.  When you evaluate :family
first you scale twice with a loss.  I have no idea whether this has any
impact.  You can try whether either of the following

(progn
   (set-face-attribute 'default nil :family "Inconsolata LGC")
   (set-face-attribute 'default nil :height 110))

(progn
   (set-face-attribute 'default nil :height 110)
   (set-face-attribute 'default nil :family "Inconsolata LGC"))

causes a different shrinking behavior but I doubt that it will reveal
anything useful.  So I ran out of ideas ...

martin