On Sat, 14 Sept 2024 at 15:43, martin rudalics wrote: > > Just that the "first version" of this patch had another problem: The > sizes we ask for in gtk_window_resize via outer_height and outer_width > include tool and menu bars. The sizes reported by ConfigureNotify are > those of the native rectangle only. I hopefully fixed that now. Please > try again and tell me the histories you get here for the initial frame > and the second frame both with and without the menu bar by evaluating > (frame--size-history). > History without menu bar: Frame size history of # x_create_frame_1 (5), TS=80x25~>1280x875, NS=80x25~>1296x875, IS=80x25~>1296x875, MS=32x70 IH IV gui_figure_window_size (5), TS=1280x875~>1280x1260, TC=80x25~>80x36, NS=1296x875~>1296x1260, IS=1296x875~>1296x1260, MS=32x70 IH IV scroll-bar-width (3), NS=1296x1260~>1328x1260, IS=1296x1260~>1328x1260, MS=160x175 scroll-bar-height (3), MS=160x175 x_create_frame_2 (0), MS=160x175 xg_frame_set_char_size, invisible, PS=1328x1260, XS=1328x1260, DS=1328x1260 xg_frame_set_char_size (5), MS=32x70 IH IV x_make_frame_visible MapNotify, not hidden & not iconified, PS=1328x1260, DS=1328x1260 ConfigureNotify, PS=1328x1260, XS=400x374, DS=1328x1260 xg_frame_resized, rejected, PS=1328x1260, XS=400x374, DS=664x630 tool-bar-lines (2), MS=160x175 xg_frame_set_char_size, visible, PS=1328x1260, XS=1328x1260, DS=1328x1260 gvalues, PS=200x187 ConfigureNotify, PS=1328x1260, XS=1328x1258, DS=1328x1260 xg_frame_resized, rejected, PS=1328x1260, XS=1328x1258, DS=664x671 set_window_configuration (4), MS=160x175 IH IV History with menu bar: Frame size history of # x_create_frame_1 (5), TS=80x25~>1280x875, NS=80x25~>1296x875, IS=80x25~>1296x875, MS=32x70 IH IV gui_figure_window_size (5), TS=1280x875~>1280x1260, TC=80x25~>80x36, NS=1296x875~>1296x1260, IS=1296x875~>1296x1260, MS=32x70 IH IV scroll-bar-width (3), NS=1296x1260~>1328x1260, IS=1296x1260~>1328x1260, MS=160x175 scroll-bar-height (3), MS=160x175 menu-bar-lines (2), MS=160x175 x_create_frame_2 (0), MS=160x175 xg_frame_set_char_size, invisible, PS=1328x1260, XS=1328x1260, DS=1328x1260 xg_frame_set_char_size (5), MS=32x70 IH IV x_make_frame_visible MapNotify, not hidden & not iconified, PS=1328x1260, DS=1328x1260 ConfigureNotify, PS=1328x1260, XS=400x340, DS=1328x1260 xg_frame_resized, rejected, PS=1328x1260, XS=400x340, DS=664x655 tool-bar-lines (2), MS=160x175 xg_frame_set_char_size, visible, PS=1328x1260, XS=1328x1260, DS=1328x1260 gvalues, PS=200x195 ConfigureNotify, PS=1328x1260, XS=1328x1258, DS=1328x1260 xg_frame_resized, rejected, PS=1328x1260, XS=1328x1258, DS=664x696 set_window_configuration (4), MS=160x175 IH IV Next I'd like to know what you see with > > (let ((frame (make-frame '((visibility . nil))))) > (make-frame-visible frame)) > > and > > (let ((frame (make-frame '((visibility . nil) (menu-bar-lines . 0))))) > (make-frame-visible frame)) > > both with an unpatched Emacs and a patched one. Here the second frame > appears exactly where the first one is, so we would have to care about > the placement ourselves. > Unpatched Emacs: both expressions create a small second frame in the top left-hand corner of the screen. Patched Emacs: both expressions create a small second frame in the top left-hand corner of the screen that immediately jumps to being the correct size. -- https://rrt.sc3d.org