From: martin rudalics <rudalics@gmx.at>
To: Tassilo Horn <tsdh@gnu.org>
Cc: Garjola Dindi <garjola@garjola.net>, emacs-devel@gnu.org
Subject: Re: Proposing changes to adjust_frame_size
Date: Sun, 16 May 2021 10:29:34 +0200 [thread overview]
Message-ID: <65f5a80d-727e-1768-6814-d98a9c0f7f68@gmx.at> (raw)
In-Reply-To: <87y2cjm4ew.fsf@gnu.org>
> 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
next prev parent reply other threads:[~2021-05-16 8:29 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-25 17:11 Proposing changes to adjust_frame_size martin rudalics
2021-04-27 8:22 ` martin rudalics
2021-04-27 14:16 ` Yuuki Harano
2021-05-02 8:46 ` martin rudalics
2021-05-02 11:21 ` Alan Third
2021-05-02 16:17 ` martin rudalics
2021-05-05 8:51 ` martin rudalics
2021-05-05 10:47 ` Yuuki Harano
2021-05-05 11:24 ` martin rudalics
2021-05-05 14:07 ` Yuuki Harano
2021-05-05 15:01 ` martin rudalics
2021-05-05 16:45 ` martin rudalics
2021-05-05 18:54 ` Tassilo Horn
2021-05-06 7:44 ` martin rudalics
2021-05-06 7:59 ` Tassilo Horn
2021-05-06 8:39 ` martin rudalics
2021-05-06 8:49 ` Tassilo Horn
2021-05-06 12:10 ` martin rudalics
2021-05-06 12:31 ` Tassilo Horn
2021-05-06 14:10 ` martin rudalics
2021-05-06 14:47 ` Tassilo Horn
2021-05-07 8:03 ` martin rudalics
2021-05-08 7:02 ` Tassilo Horn
2021-05-08 7:16 ` martin rudalics
2021-05-08 14:03 ` Tassilo Horn
2021-05-08 15:17 ` martin rudalics
2021-05-08 20:32 ` Tassilo Horn
2021-05-09 8:41 ` martin rudalics
2021-05-09 10:09 ` Garjola Dindi
2021-05-09 10:12 ` Garjola Dindi
2021-05-09 18:48 ` Tassilo Horn
2021-05-10 8:25 ` martin rudalics
2021-05-10 12:27 ` martin rudalics
2021-05-10 19:05 ` Tassilo Horn
2021-05-10 19:21 ` martin rudalics
2021-05-10 19:28 ` Tassilo Horn
2021-05-11 8:29 ` martin rudalics
2021-05-11 9:25 ` Tassilo Horn
2021-05-12 8:44 ` martin rudalics
2021-05-12 14:53 ` Tassilo Horn
2021-05-12 16:40 ` martin rudalics
2021-05-12 19:06 ` Tassilo Horn
2021-05-13 7:55 ` martin rudalics
2021-05-13 8:08 ` Tassilo Horn
2021-05-16 8:29 ` martin rudalics [this message]
2021-05-16 8:33 ` Tassilo Horn
2021-05-16 9:14 ` martin rudalics
2021-05-16 9:16 ` Tassilo Horn
2021-05-16 12:24 ` martin rudalics
2021-05-16 19:08 ` Tassilo Horn
2021-05-17 7:33 ` martin rudalics
2021-05-06 14:41 ` Yuuki Harano
2021-05-09 9:32 ` Yuuki Harano
2021-05-09 13:47 ` martin rudalics
2021-05-09 15:30 ` Yuuki Harano
2021-05-10 8:24 ` martin rudalics
2021-05-10 13:18 ` Yuuki Harano
2021-05-10 14:16 ` martin rudalics
2021-05-10 15:41 ` Yuuki Harano
2021-05-10 19:20 ` martin rudalics
2021-05-11 14:32 ` Yuuki Harano
2021-05-12 8:47 ` martin rudalics
2021-05-13 8:48 ` Garjola Dindi
2021-05-01 18:59 ` Alan Third
2021-05-02 7:38 ` martin rudalics
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=65f5a80d-727e-1768-6814-d98a9c0f7f68@gmx.at \
--to=rudalics@gmx.at \
--cc=emacs-devel@gnu.org \
--cc=garjola@garjola.net \
--cc=tsdh@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).