[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposing changes to adjust_frame_size
From: |
martin rudalics |
Subject: |
Re: Proposing changes to adjust_frame_size |
Date: |
Sun, 16 May 2021 10:29:34 +0200 |
> With --load repro.el the initial frame has:
>
> --8<---------------cut here---------------start------------->8---
> Frame size history of #<frame *scratch* - GNU Emacs at thinkpad-t440p
0x555ace1cfc60>
> x_create_frame_1 (5), TS=80x25~>640x525, NS=80x25~>656x525,
IS=80x25~>656x525, MS=16x42 IH IV
> gui_figure_window_size (5), TS=640x525~>640x756, TC=80x25~>80x36,
NS=656x525~>656x756, IS=656x525~>656x756, MS=16x42 IH IV
> scroll-bar-width (3), NS=656x756~>672x756, IS=656x756~>672x756, MS=80x105
16 pixels for the scroll bar, we don't know yet that it will be turned
off.
> scroll-bar-height (3), MS=80x105
> menu-bar-lines (2), MS=80x105
> x_create_frame_2 (0), MS=80x105
> xg_frame_set_char_size, invisible, PS=672x756, XS=672x756, DS=672x756
> xg_frame_set_char_size (5), MS=16x42 IH IV
> MapNotify, not hidden & not iconified, PS=672x756, DS=672x756
> ConfigureNotify, PS=672x756, XS=672x756, DS=672x756
This was a ConfigureNotify for the frame size we asked for. We don't
pass it on to change_frame_size since it's the size we have set already.
> xg_frame_resized, unchanged, PS=672x756, XS=672x756
> ConfigureNotify, PS=672x756, XS=1594x851, DS=672x756
And this was a ConfigureNotify for the frame size the WM allots to us.
This time it gives you the entire display - 1594x851 native pixels,
right?.
> xg_frame_resized, changed, PS=672x756, XS=1594x851
> change_frame_size_1, delayed, PS=672x756, XS=1594x851, DS=672x756
> change_frame_size (5), TS=640x756~>1562x851, TC=80x36~>195x40,
NS=672x756~>1594x851, IS=672x756~>1594x851, MS=16x42 IH IV
Here Emacs should have dealt with the size we got from the WM resulting
in 195x40 characters.
> tool-bar-lines (2), MS=80x105 IH IV
> menu-bar-lines (2), MS=80x105 IH IV
> vertical-scroll-bars (3), TS=1562x851~>1578x851, TC=195x40~>197x40, MS=80x105
IH IV
Here we presumably processed the removal of the various bars.
> size (1), TS=1578x851~>720x1050, TC=197x40~>90x50, NS=1594x851~>736x1050,
IS=1594x851~>736x1050, MS=80x105
And here the 90x50 characters size request from `default-frame-alist'
kicked in.
> xg_frame_set_char_size, visible, PS=1594x851, XS=736x1050, DS=736x1050
> ConfigureNotify, PS=1594x851, XS=1594x878, DS=736x1050
Here we got a ConfigureNotify of 1594x878 native pixels. These are 17
pixels more than before, probably from the recovered menu bar pixels
(leaving the outer frame size unchanged).
> xg_frame_resized, changed, PS=1594x851, XS=1594x878
> change_frame_size_1, delayed, PS=1594x851, XS=1594x878, DS=736x1050
> change_frame_size (5), TS=1578x851~>1578x878, TC=197x40~>197x41,
NS=1594x851~>1594x878, IS=1594x851~>1594x878, MS=16x42 IH IV
And here we processed the ConfigureNotify, resulting in 197x41
characters.
> --8<---------------cut here---------------end--------------->8---
The problem with this history is that the focus/resize is somewhere
processed in it but I cannot tell where. I suppose that at the time the
1594x878 pixels appear in the history, everything looks good, that is
the menu bar has disappeared probably after the frame has got focus.
>> After that do
>>
>> (setq frame-size-history '(100))
>>
>> run C-x 5 2 and again post what `frame--size-history' returns.
>
> --8<---------------cut here---------------start------------->8---
> Frame size history of #<frame *scratch* 0x555ace358480>
> x_create_frame_1 (5), TS=80x25~>640x525, NS=80x25~>656x525,
IS=80x25~>656x525, MS=16x42 IH IV
> gui_figure_window_size (5), TS=640x525~>720x1050, TC=80x25~>90x50,
NS=656x525~>736x1050, IS=656x525~>736x1050, MS=16x42 IH IV
> scroll-bar-width (3), NS=736x1050~>752x1050, IS=736x1050~>752x1050, MS=80x105
16 pixels for the scroll bar with `scroll-bar-mode' turned off? Looks
silly and is probably the cause of the "scrollbar which won't vanish
except by M-x scroll-bar-mode RET twice".
> scroll-bar-height (3), MS=80x105
> x_create_frame_2 (0), MS=80x105
> xg_frame_set_char_size, invisible, PS=752x1050, XS=752x1050, DS=752x1050
> xg_frame_set_char_size (5), MS=16x42 IH IV
> x_make_frame_visible
> MapNotify, not hidden & not iconified, PS=752x1050, DS=752x1050
> ConfigureNotify, PS=752x1050, XS=752x1050, DS=752x1050
> xg_frame_resized, unchanged, PS=752x1050, XS=752x1050
> ConfigureNotify, PS=752x1050, XS=794x878, DS=752x1050
> xg_frame_resized, changed, PS=752x1050, XS=794x878
> change_frame_size_1, delayed, PS=752x1050, XS=794x878, DS=752x1050
> change_frame_size (5), TS=720x1050~>762x878, TC=90x50~>95x41,
NS=752x1050~>794x878, IS=752x1050~>794x878, MS=16x42 IH IV
This looks normal again just that I don't have any idea where this
> set_window_configuration (4), MS=80x105 IH IV
comes from.
> --8<---------------cut here---------------end--------------->8---
>
> And now the same with the repro.el where the default-frame-alist setting
> is commented out, and thereby it works all fine, i.e., the initial frame
> has tool/menu/scrollbars disabled and the second frame has, too.
>
> Initial frame:
>
> --8<---------------cut here---------------start------------->8---
> Frame size history of #<frame *scratch* - GNU Emacs at thinkpad-t440p
0x55dd691fa0c0>
> x_create_frame_1 (5), TS=80x25~>640x525, NS=80x25~>656x525,
IS=80x25~>656x525, MS=16x42 IH IV
> gui_figure_window_size (5), TS=640x525~>640x756, TC=80x25~>80x36,
NS=656x525~>656x756, IS=656x525~>656x756, MS=16x42 IH IV
> scroll-bar-width (3), NS=656x756~>672x756, IS=656x756~>672x756, MS=80x105
> scroll-bar-height (3), MS=80x105
> menu-bar-lines (2), MS=80x105
> x_create_frame_2 (0), MS=80x105
> xg_frame_set_char_size, invisible, PS=672x756, XS=672x756, DS=672x756
> xg_frame_set_char_size (5), MS=16x42 IH IV
> MapNotify, not hidden & not iconified, PS=672x756, DS=672x756
> ConfigureNotify, PS=672x756, XS=672x756, DS=672x756
> xg_frame_resized, unchanged, PS=672x756, XS=672x756
> ConfigureNotify, PS=672x756, XS=1594x851, DS=672x756
> xg_frame_resized, changed, PS=672x756, XS=1594x851
> change_frame_size_1, delayed, PS=672x756, XS=1594x851, DS=672x756
> change_frame_size (5), TS=640x756~>1562x851, TC=80x36~>195x40,
NS=672x756~>1594x851, IS=672x756~>1594x851, MS=16x42 IH IV
> tool-bar-lines (2), MS=80x105 IH IV
> menu-bar-lines (2), MS=80x105 IH IV
> vertical-scroll-bars (3), TS=1562x851~>1578x851, TC=195x40~>197x40, MS=80x105
IH IV
No 90x50 request here.
> ConfigureNotify, PS=1594x851, XS=1594x878
> xg_frame_resized, changed, PS=1594x851, XS=1594x878
> change_frame_size_1, delayed, PS=1594x851, XS=1594x878
> change_frame_size (5), TS=1578x851~>1578x878, TC=197x40~>197x41,
NS=1594x851~>1594x878, IS=1594x851~>1594x878, MS=16x42 IH IV
And everything looks like above.
> --8<---------------cut here---------------end--------------->8---
>> Is this behavior new or did it already occur in Emacs 27?
>
> Yes, with my repro.el containing the `default-frame-alist' setting, the
> initial frame has a menubar (until resize/focus), and the new frame
> after C-x 5 2 has a scrollbar.
And with Emacs 27 the initial frame did not have a menu bar initially
and the new frame after C-x 5 2 did not have a scroll bar initially.
Right?
Did my latest commit (c18403302df3f07a7f94c3984d65b808fb40e8c1) in this
area change anything in this regard?
martin
- Re: Proposing changes to adjust_frame_size, (continued)
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/10
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/10
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/11
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/11
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/12
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/12
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/12
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/12
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/13
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/13
- Re: Proposing changes to adjust_frame_size,
martin rudalics <=
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/16
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/16
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/16
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/16
- Re: Proposing changes to adjust_frame_size, Tassilo Horn, 2021/05/16
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/17
- Re: Proposing changes to adjust_frame_size, Yuuki Harano, 2021/05/06
- Re: Proposing changes to adjust_frame_size, Yuuki Harano, 2021/05/09
- Re: Proposing changes to adjust_frame_size, martin rudalics, 2021/05/09
- Re: Proposing changes to adjust_frame_size, Yuuki Harano, 2021/05/09