Subject: Re: bug#72986: Disabling menu-bar-mode changes size of new frames

From: Reuben Thomas <[email-masked]>
Date: Thu, 3 Oct 2024 20:43:42 +0100

On Thu, 3 Oct 2024 at 14:55, martin rudalics <[email-masked]> wrote:

>
> Same here.  I never asked you but IIUC this means that creating the
> first frame without menubar proceeds just as "smoothly" as with commit
> 24161683102 reverted.  Right?  Does it proceed just as smoothly with the
> earlier gtkutil-reject-2024-10-01.diff used instead?  Or can you observe
> the correction by two pixels somehow?
>

The initial frame's size doesn't seem to change as it appears when I run:

./src/emacs -Q  --eval "(setq default-frame-alist '((menu-bar-lines . 0)))"
The only visual glitch I can see is that the menu bar appears for an
instant before disappearing.

I suppose you still see here the small frame first and
> the resized one immediately afterwards.  Right?
>

That's right!

> If you still have enough patience, I'd ask you to try next with the
> attached patch gtkutil-frame.diff.  It does not reject anything but also
> does not pick up any sizes from delayed size changes.
>

Sure, no problem.

First frame with menu bar:

Frame size history of #<frame  *Minibuf-1* - GNU Emacs at dwks
0x59e577a85750>
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=1328x1260, DS=1328x1260
xg_frame_resized, unchanged, PS=1328x1260, XS=1328x1260
ConfigureNotify, PS=1328x1260, XS=1328x1258, DS=1328x1260
xg_frame_resized, changed, PS=1328x1260, XS=1328x1258
change_frame_size_1, delayed, PS=1328x1260, XS=1328x1258, DS=1328x1260
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x1260, XS=1328x1260, DS=1328x1258
 +values, PS=664x654, XS=664x696
ConfigureNotify, PS=1328x1260, XS=1328x1258, DS=1328x1258
xg_frame_resized, changed, PS=1328x1260, XS=1328x1258, DS=1328x1258
change_frame_size_1, delayed, PS=1328x1260, XS=1328x1258, DS=1328x1258
change_frame_size (5), TS=1280x1260~>1280x1258, TC=80x36~>80x35,
NS=1328x1260~>1328x1258, IS=1328x1260~>1328x1258, MS=32x70 IH IV
set_window_configuration (4), MS=160x175 IH IV

First frame without menu bar:

Frame size history of #<frame  *Minibuf-1* - GNU Emacs at dwks
0x63f23d459690>
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=1328x1260, DS=1328x1260
xg_frame_resized, unchanged, PS=1328x1260, XS=1328x1260
menu-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x1260, XS=1328x1260, DS=1328x1260
 +values, PS=664x655, XS=664x630
ConfigureNotify, PS=1328x1260, XS=1328x1308, DS=1328x1260
xg_frame_resized, changed, PS=1328x1260, XS=1328x1308
change_frame_size_1, delayed, PS=1328x1260, XS=1328x1308, DS=1328x1260
change_frame_size (5), TS=1280x1260~>1280x1308, TC=80x36~>80x37,
NS=1328x1260~>1328x1308, IS=1328x1260~>1328x1308, MS=32x70 IH IV
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x1308, XS=1328x1308
 +values, PS=664x654, XS=664x695
ConfigureNotify, PS=1328x1308, XS=1328x1176
xg_frame_resized, changed, PS=1328x1308, XS=1328x1176
change_frame_size_1, delayed, PS=1328x1308, XS=1328x1176
change_frame_size (5), TS=1280x1308~>1280x1176, TC=80x37~>80x33,
NS=1328x1308~>1328x1176, IS=1328x1308~>1328x1176, MS=32x70 IH IV
ConfigureNotify, PS=1328x1176, XS=1328x1292
xg_frame_resized, changed, PS=1328x1176, XS=1328x1292
change_frame_size_1, delayed, PS=1328x1176, XS=1328x1292
change_frame_size (5), TS=1280x1176~>1280x1292, TC=80x33~>80x36,
NS=1328x1176~>1328x1292, IS=1328x1176~>1328x1292, MS=32x70 IH IV
set_window_configuration (4), MS=160x175 IH IV

Second frame with menu bar:

Frame size history of #<frame  *Minibuf-1* 0x55cd2d33c8f0>
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, changed, PS=1328x1260, XS=400x340
change_frame_size_1, delayed, PS=1328x1260, XS=400x340, DS=1328x1260
change_frame_size (5), TS=1280x1260~>352x340, TC=80x36~>22x9,
NS=1328x1260~>400x340, IS=1328x1260~>400x340, MS=32x70 IH IV
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=400x340, XS=400x340
 +values, PS=200x195, XS=200x236
ConfigureNotify, PS=400x340, XS=400x340
xg_frame_resized, unchanged, PS=400x340, XS=400x340
ConfigureNotify, PS=400x340, XS=400x374
xg_frame_resized, changed, PS=400x340, XS=400x374
change_frame_size_1, delayed, PS=400x340, XS=400x374
change_frame_size (5), TS=352x340~>352x374, TC=22x9~>22x10,
NS=400x340~>400x374, IS=400x340~>400x374, MS=32x70 IH IV
set_window_configuration (4), MS=160x175 IH IV

Second frame without menu bar:

Frame size history of #<frame  *Minibuf-1* 0x5f9a7c015ef8>
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, changed, PS=1328x1260, XS=400x374
change_frame_size_1, delayed, PS=1328x1260, XS=400x374, DS=1328x1260
change_frame_size (5), TS=1280x1260~>352x374, TC=80x36~>22x10,
NS=1328x1260~>400x374, IS=1328x1260~>400x374, MS=32x70 IH IV
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=400x374, XS=400x374
 +values, PS=200x187, XS=200x228
ConfigureNotify, PS=400x374, XS=400x374
xg_frame_resized, unchanged, PS=400x374, XS=400x374
set_window_configuration (4), MS=160x175 IH IV

-- 
https://rrt.sc3d.org