Subject: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong

From: Dmitry Gutov <[email-masked]>
Date: Fri, 6 Jan 2023 20:14:52 +0200

On 06/01/2023 19:47, martin rudalics wrote:
>  > So I double-checked -- and both behaviors with the latest patch match
>  > what the current (unpatched) emacs-29 does.
> 
> With one subtle difference: In the unpatched version the WM shrinks the
> size.  In the patched version we do it ourselves and the WM does what we
> are asking for.
> 
>    x_new_font old char size 18x36 new char size 21x45 text chars 102x36 
> old text pixels 1836x1296 new text pixels 2142x1620
>    xg_wm_set_size_hint scale 2 char width 21 toolbar 0 vscroll 32 
> fringes 16 borders 0 base width 34 width inc 10
>        char height 45 menubar 50 toolbar 82 hscroll 0 borders 0 base 
> height 88 height inc 22
>    xg_frame_set_char_size old native pixels 1884x1296 new native pixels 
> 2190x1620 outer pixels 1094x858 outer rest 0x0
>    xg_frame_resized old native pixels 1884x1296 new native pixels 2188x1584
>    adjust_frame_size old native pixels 1884x1296 new native pixels 
> 2188x1584 old text pixels 1836x1296 new text pixels 2140x1584 old text 
> chars 102x36 new text chars 101x35
> 
> Here we round down the outer pixel sizes from 1095x876 to 1094x858 to
> meet the WM requirements (outer rest is 0x0 in all your steps).  So
> incidentally, I reverse-engineered the WM.  Now let's try to round up
> instead.  I'm quite confident that this will make your frames grow.

Nope.

But this one seems the best one yet:

- No height shrinking.
- Width shrinks only once (at certain rare widths), and after that it is 
stable.

Attaching *foo* after this:

(set-frame-width nil 113) ; x1
(set-face-attribute 'default nil :height 110 :family "InconsolataLGC") ; x3