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