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

From: Reuben Thomas <[email-masked]>
Date: Wed, 2 Oct 2024 13:06:30 +0100

On Wed, 2 Oct 2024 at 09:53, martin rudalics <[email-masked]> wrote:

> Now we get a ConfigureNotify event that instead of giving us a native
> pixel height of 1260 gives us a height of 1258 and we reject it.  Where
> did those two pixels go to?  I suppose I'll never find out.
>

It's infuriating! But unless it's related to the eventual dramatic
difference in size, maybe it doesn't actually matter.

- Apply the patch gtkutil-reject-2024-10-02.diff which adds a tolerance
>    of two pixels in order to avoid rejecting the ConfigureNotify and post
>    the four histories as before.
>

First frame with menu bar:

Frame size history of #<frame  *Minibuf-1* - GNU Emacs at dwks
0x64f211b91440>
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), NS=1328x1260~>1328x1258, MS=160x175
xg_frame_set_char_size, visible, PS=1328x1260, XS=1328x1258, DS=1328x1258
 +values, PS=664x654, XS=664x695
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
0x5a4bf2898980>
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, rejected, PS=1328x1260, XS=1328x1308, DS=664x630
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x1260, XS=1328x1260, DS=1328x1260
 +values, PS=664x654, XS=664x671
ConfigureNotify, PS=1328x1260, XS=1328x1176, DS=1328x1260
xg_frame_resized, rejected, PS=1328x1260, XS=1328x1176, DS=664x671
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
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

Second frame with menu bar:

Frame size history of #<frame  *Minibuf-1* 0x6051a23e13e0>
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
 +values, PS=200x195, XS=664x696
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
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

Second frame without menu bar:

Frame size history of #<frame  *Minibuf-1* 0x5be3fa6f4250>
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
 +values, PS=200x187, XS=664x671
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
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

- Apply the patch gtkutil-reject-2024-10-02(25).diff (from a pristine
>    Emacs).  This is like the previous patch but makes the initial frame
>    only 25 lines high.  Again please post the histories for all four
>    cases.
>

First frame with menu bar:

Frame size history of #<frame  *Minibuf-1* - GNU Emacs at dwks
0x5e3d15f35b10>
x_create_frame_1 (5), TS=80x25~>1280x875, NS=80x25~>1296x875,
IS=80x25~>1296x875, MS=32x70 IH IV
gui_figure_window_size (5), MS=32x70 IH IV
scroll-bar-width (3), NS=1296x875~>1328x875, IS=1296x875~>1328x875,
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=1328x875, XS=1328x875, DS=1328x875
xg_frame_set_char_size (5), MS=32x70 IH IV
x_make_frame_visible
MapNotify, not hidden & not iconified, PS=1328x875, DS=1328x875
ConfigureNotify, PS=1328x875, XS=1328x874, DS=1328x875
xg_frame_resized, changed, PS=1328x875, XS=1328x874
change_frame_size_1, delayed, PS=1328x875, XS=1328x874, DS=1328x875
change_frame_size (5), TS=1280x875~>1280x874, TC=80x25~>80x24,
NS=1328x875~>1328x874, IS=1328x875~>1328x874, MS=32x70 IH IV
ConfigureNotify, PS=1328x874, XS=1328x850
xg_frame_resized, changed, PS=1328x874, XS=1328x850
change_frame_size_1, delayed, PS=1328x874, XS=1328x850
tool-bar-lines (2), NS=1328x874~>1328x850, MS=160x175
xg_frame_set_char_size, visible, PS=1328x874, XS=1328x850, DS=1328x850
 +values, PS=664x450, XS=664x491
ConfigureNotify, PS=1328x874, XS=1328x850, DS=1328x850
xg_frame_resized, changed, PS=1328x874, XS=1328x850, DS=1328x850
change_frame_size_1, delayed, PS=1328x874, XS=1328x850, DS=1328x850
change_frame_size (5), TS=1280x874~>1280x850, NS=1328x874~>1328x850,
IS=1328x874~>1328x850, 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
0x58db7d353700>
x_create_frame_1 (5), TS=80x25~>1280x875, NS=80x25~>1296x875,
IS=80x25~>1296x875, MS=32x70 IH IV
gui_figure_window_size (5), MS=32x70 IH IV
scroll-bar-width (3), NS=1296x875~>1328x875, IS=1296x875~>1328x875,
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=1328x875, XS=1328x875, DS=1328x875
xg_frame_set_char_size (5), MS=32x70 IH IV
x_make_frame_visible
MapNotify, not hidden & not iconified, PS=1328x875, DS=1328x875
ConfigureNotify, PS=1328x875, XS=1328x874, DS=1328x875
xg_frame_resized, changed, PS=1328x875, XS=1328x874
change_frame_size_1, delayed, PS=1328x875, XS=1328x874, DS=1328x875
change_frame_size (5), TS=1280x875~>1280x874, TC=80x25~>80x24,
NS=1328x875~>1328x874, IS=1328x875~>1328x874, MS=32x70 IH IV
menu-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x874, XS=1328x874
 +values, PS=664x462, XS=664x437
ConfigureNotify, PS=1328x874, XS=1328x900
xg_frame_resized, rejected, PS=1328x874, XS=1328x900, DS=664x437
ConfigureNotify, PS=1328x874, XS=1328x850
xg_frame_resized, rejected, PS=1328x874, XS=1328x850, DS=664x437
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x874, XS=1328x874
 +values, PS=664x425, XS=664x478
ConfigureNotify, PS=1328x874, XS=1328x850
xg_frame_resized, rejected, PS=1328x874, XS=1328x850, DS=664x478
set_window_configuration (4), MS=160x175 IH IV

Second frame with menu bar:

Frame size history of #<frame  *Minibuf-1* 0x56df7cb4ae70>
x_create_frame_1 (5), TS=80x25~>1280x875, NS=80x25~>1296x875,
IS=80x25~>1296x875, MS=32x70 IH IV
gui_figure_window_size (5), MS=32x70 IH IV
scroll-bar-width (3), NS=1296x875~>1328x875, IS=1296x875~>1328x875,
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=1328x875, XS=1328x875, DS=1328x875
xg_frame_set_char_size (5), MS=32x70 IH IV
x_make_frame_visible
MapNotify, not hidden & not iconified, PS=1328x875, DS=1328x875
ConfigureNotify, PS=1328x875, XS=400x340, DS=1328x875
xg_frame_resized, rejected, PS=1328x875, XS=400x340, DS=664x462
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x875, XS=1328x875, DS=1328x875
 +values, PS=200x195, XS=664x503
ConfigureNotify, PS=1328x875, XS=1328x768, DS=1328x875
xg_frame_resized, rejected, PS=1328x875, XS=1328x768, DS=664x503
ConfigureNotify, PS=1328x875, XS=1328x850, DS=1328x875
xg_frame_resized, rejected, PS=1328x875, XS=1328x850, DS=664x503
set_window_configuration (4), MS=160x175 IH IV

Second frame without menu bar:

Frame size history of #<frame  *Minibuf-1* 0x6319bd8c8720>
x_create_frame_1 (5), TS=80x25~>1280x875, NS=80x25~>1296x875,
IS=80x25~>1296x875, MS=32x70 IH IV
gui_figure_window_size (5), MS=32x70 IH IV
scroll-bar-width (3), NS=1296x875~>1328x875, IS=1296x875~>1328x875,
MS=160x175
scroll-bar-height (3), MS=160x175
x_create_frame_2 (0), MS=160x175
xg_frame_set_char_size, invisible, PS=1328x875, XS=1328x875, DS=1328x875
xg_frame_set_char_size (5), MS=32x70 IH IV
x_make_frame_visible
MapNotify, not hidden & not iconified, PS=1328x875, DS=1328x875
ConfigureNotify, PS=1328x875, XS=400x374, DS=1328x875
xg_frame_resized, rejected, PS=1328x875, XS=400x374, DS=664x437
tool-bar-lines (2), MS=160x175
xg_frame_set_char_size, visible, PS=1328x875, XS=1328x875, DS=1328x875
 +values, PS=200x187, XS=664x478
ConfigureNotify, PS=1328x875, XS=1328x850, DS=1328x875
xg_frame_resized, rejected, PS=1328x875, XS=1328x850, DS=664x478
set_window_configuration (4), MS=160x175 IH IV

-- 
https://rrt.sc3d.org