> - Width shrinks only once (at certain rare widths), and after that it is stable. x_new_font old char size 21x45 new char size 17x37 text chars 113x36 old text pixels 2380x1628 new text pixels 1921x1332 xg_wm_set_size_hint scale 2 char width 17 toolbar 0 vscroll 32 fringes 16 borders 0 base width 32 width inc 8 char height 37 menubar 50 toolbar 82 hscroll 0 borders 0 base height 84 height inc 18 xg_frame_set_char_size old native pixels 2428x1628 new native pixels 1969x1332 outer pixels 984x732 outer rest 0x0 xg_frame_resized old native pixels 2428x1628 new native pixels 1968x1332 adjust_frame_size old native pixels 2428x1628 new native pixels 1968x1332 old text pixels 2380x1628 new text pixels 1920x1332 old text chars 113x36 new text chars 112x36 Here we calculate outer_width as (/ (+ 1921 32 16) 2) that is 984 and outer_height as (/ (+ 1332 50 82) 2) that is 732. Since 1921 is impair we lose one pixel due to scaling. Now width_rest calculated as (% (- 984 32) 8) and height_rest calculated as (% (- 732 84) 18) are both zero so we do not do any compensating and lose one column after resizing. I attach a version to handle this particular case. Let's see whether it breaks something else. martin