emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proposing changes to adjust_frame_size


From: Tassilo Horn
Subject: Re: Proposing changes to adjust_frame_size
Date: Thu, 13 May 2021 10:08:24 +0200
User-agent: mu4e 1.5.13; emacs 28.0.50

martin rudalics <rudalics@gmx.at> writes:

>> --8<---------------cut here---------------start------------->8---
>> (tool-bar-mode -1)
>> (menu-bar-mode -1)
>> (when (fboundp 'scroll-bar-mode)
>>    (scroll-bar-mode -1))
>> (when (fboundp 'horizontal-scroll-bar-mode)
>>    (horizontal-scroll-bar-mode -1))
>>
>> (setq default-frame-alist '((width . 90)
>>                              (height . 50)))
>> --8<---------------cut here---------------end--------------->8---
>>
>> With "emacs -Q --load repro.el" where repro.el contains just the above
>> listing, I get an initial frame with the usual annoyance (a menubar
>> which vanishes on focus/resize), and in addition C-x 5 2 gives me a new
>> frame which has a scrollbar which won't vanish except by M-x
>> scroll-bar-mode RET twice.  (The first makes the scrollbars appear also
>> on the initial frame, the second turns it off in both frames).
>
> Can you reproduce any of these problems without the
> `default-frame-alist' setting?  In either case, please do the
>
>   frame_size_history = list1 (make_fixnum (100));
>
> assignment and tell me what calling `frame--size-history' gives after
> the initial frame has appeared.

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
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
size (1), TS=1578x851~>720x1050, TC=197x40~>90x50, NS=1594x851~>736x1050, 
IS=1594x851~>736x1050, MS=80x105
xg_frame_set_char_size, visible, PS=1594x851, XS=736x1050, DS=736x1050
ConfigureNotify, PS=1594x851, XS=1594x878, DS=736x1050
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
--8<---------------cut here---------------end--------------->8---

> 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
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
set_window_configuration (4), MS=80x105 IH IV
--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
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
--8<---------------cut here---------------end--------------->8---

C-x 5 2 frame:

--8<---------------cut here---------------start------------->8---
Frame size history of #<frame *scratch* 0x55dd69b9b830>
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), MS=80x105
scroll-bar-height (3), MS=80x105
x_create_frame_2 (0), MS=80x105
xg_frame_set_char_size, invisible, PS=656x756, XS=656x756, DS=656x756
xg_frame_set_char_size (5), MS=16x42 IH IV
x_make_frame_visible
MapNotify, not hidden & not iconified, PS=656x756, DS=656x756
ConfigureNotify, PS=656x756, XS=656x756, DS=656x756
xg_frame_resized, unchanged, PS=656x756, XS=656x756
ConfigureNotify, PS=656x756, XS=794x878, DS=656x756
xg_frame_resized, changed, PS=656x756, XS=794x878
change_frame_size_1, delayed, PS=656x756, XS=794x878, DS=656x756
change_frame_size (5), TS=640x756~>778x878, TC=80x36~>97x41, 
NS=656x756~>794x878, IS=656x756~>794x878, MS=16x42 IH IV
--8<---------------cut here---------------end--------------->8---

>> Also interestingly, with just emacs -Q, C-x 5 2 exhibits the "toolbar
>> is missing in the new frame" issue.
>
> Again, I'd need to know what `frame--size-history' tells about this.

Initial frame:

--8<---------------cut here---------------start------------->8---
Frame size history of #<frame *scratch* - GNU Emacs at thinkpad-t440p 
0x564daeb04e40>
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
ConfigureNotify, PS=1594x851, XS=1594x810
xg_frame_resized, changed, PS=1594x851, XS=1594x810
change_frame_size_1, delayed, PS=1594x851, XS=1594x810
change_frame_size (5), TS=1562x851~>1562x810, TC=195x40~>195x38, 
NS=1594x851~>1594x810, IS=1594x851~>1594x810, MS=16x42 IH IV
--8<---------------cut here---------------end--------------->8---

C-x 5 2 frame: Oh, too bad, that doesn't happen anymore.  The new frame
has a toolbar immediately.  Anyway, I'll post the history anyway...

--8<---------------cut here---------------start------------->8---
Frame size history of #<frame *scratch* 0x55ba5a491a08>
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
x_make_frame_visible
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=794x851, DS=672x756
xg_frame_resized, changed, PS=672x756, XS=794x851
change_frame_size_1, delayed, PS=672x756, XS=794x851, DS=672x756
tool-bar-lines (2), MS=80x105 IH IV
ConfigureNotify, PS=672x756, XS=794x810, DS=794x851
xg_frame_resized, changed, PS=672x756, XS=794x810, DS=794x851
change_frame_size_1, delayed, PS=672x756, XS=794x810, DS=794x851
change_frame_size (5), TS=640x756~>762x810, TC=80x36~>95x38, 
NS=672x756~>794x810, IS=672x756~>794x810, MS=16x42 IH IV
--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.

Bye,
Tassilo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]