Subject: Re: bug#31745: 回复： bug#31745: 回复：回复：Re: 回复：bug#31745: Frame's bug whenwindow-system

From: Robert Pluim <[email-masked]>
Date: Fri, 22 Jun 2018 16:44:25 +0200

martin rudalics <[email-masked]> writes:

>> It seems like thereʼs some kind of race condition going on when
>> creating the initial frame. It seems pretty sensitive though, as soon
>> as I start looking for the cause it goes away.
>
> You could try setting 'frame-size-history' to something like '(1000)
> and look at what 'frame--size-history' tells.  Since this does not
> cover the initial frame, you may have to do a hard setting in frame.c.
>

So when everything kinda works:

(965
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-1
	  (1120 1080 1120 1080)
	  (set-window-configuration 1))
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-3
	  (1820 1680 1120 1080)
	  (1849 1680 1149 1080))
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-1
	  (1820 1680 1120 1080)
	  (change-frame-size 5))
 (#<frame emacs@rpluim-ubuntu 0x133fd20> xg-frame-resized
	  (1820 1680 1120 1080)
	  nil)
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-3
	  (1120 1080 1820 1680)
	  (1149 1080 1849 1680))

So we start small, go big, then go small again, but the end result,
even though it looks correct, is actually wrong:

(frame-parameter nil 'height)
36
(frame-parameter nil 'width)
80

Although I asked for:

(add-to-list 'default-frame-alist '(width . 130))
(add-to-list 'default-frame-alist '(height . 56))

in the .el Iʼm loading.

When it doesnʼt work:

(967
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-1
	  (1820 1680 1820 1680)
	  (set-window-configuration 1))
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-3
	  (1120 1080 1820 1680)
	  (1149 1080 1849 1680))
 (#<frame emacs@rpluim-ubuntu 0x133fd20> adjust-frame-size-1
	  (1120 1080 1820 1680)
	  (change-frame-size 5))
 (#<frame emacs@rpluim-ubuntu 0x133fd20> xg-frame-resized
	  (1120 1080 1120 1080)
	  nil)
 (#<frame emacs@rpluim-ubuntu 0x133fd20> xg-frame-set-char-size-3
	  (1120 1080 1120 1080)
	  (1149 1183))

we start big, go small, and stay small. The frame is actually the same
size as previous, but emacs' state is messed up:

(frame-parameter nil 'height)
56
(frame-parameter nil 'width)
130

Iʼve attached both full traces.

Robert