On 23/12/2022 11:14, martin rudalics wrote: > > I'm not sure if you caught one of my previous messages, however, so > I'd like to repeat: > > > > The problem is easily repeatable in the above scenario. But not if I > change "InconsolataLGC" to "Inconsolata LGC". Then the resizing stops > after the first iteration. > > > > In either case, 'M-x describe-face RET default' shows "Family: > Inconsolata LGC", though. So it's not like "InconsolataLGC" is entirely > unrecognized. > > Does it matter?  Whatever you do - have the same form evaluated twice in > a row causing a frame resize must be a bug - somewhere. Yep. I just figured that it might give you ideas as to the cause and/or affect the priority of having this fixed. > > Anyway, here's the log (evaled the form 3 times): > > > > adjust_frame_size .. pixel_height .. 25 .. text_height .. 24 > > adjust_frame_size .. pixel_height .. 900 .. text_height .. 900 > > adjust_frame_size .. pixel_height .. 1296 .. text_height .. 1296 > > adjust_frame_size .. pixel_height .. 1296 .. text_height .. 1296 > > xg_wm_set_size_hint .. line_height .. 36 .. base_height .. 43 .. > height_inc .. 18 > > xg_wm_set_size_hint .. line_height .. 36 .. base_height .. 84 .. > height_inc .. 18 > > We start here > > > set-face-attribute > > xg_wm_set_size_hint .. line_height .. 45 .. base_height .. 88 .. > height_inc .. 22 > > and come up with a frame line height of 45 pixels and an increment hint > of 22 which means that some scaling (by 2 apparently) is in effect here. > Honestly, I have no idea how this is supposed to work. 2x scaling, yes (I have a 4K display). > > adjust_frame_size .. pixel_height .. 1584 .. text_height .. 1584 > > xg_wm_set_size_hint .. line_height .. 37 .. base_height .. 84 .. > height_inc .. 18 > > Here we ask for the same (due to rounding) increment ... > > > adjust_frame_size .. pixel_height .. 1260 .. text_height .. 1260 > > set-face-attribute > > adjust_frame_size .. pixel_height .. 1224 .. text_height .. 1224 > > adjust_frame_size .. pixel_height .. 1188 .. text_height .. 1188 > > set-face-attribute > > adjust_frame_size .. pixel_height .. 1152 .. text_height .. 1152 > > adjust_frame_size .. pixel_height .. 1116 .. text_height .. 1116 > > ... but then we do not set hints any more so it seems that we do all the > shrinking ourselves - just how can we shrink and not send size hints at > the same time is yet a mystery to me. > > Please run again with the new patch but also evaluate > > (setq frame-size-history '(100)) > > Then perform some 'set-face-attribute' calls, evaluate > > (frame--size-history) > > and get me the contents of both buffers *foo* and *frame-size-history*. Here you go, both attached. I called set-face-attributes 8 times, might have got a little over-enthusiastic.