Subject: bug#37609: Tool-bar-mode grows the frame's height

From: Juri Linkov <[email-masked]>
Date: Wed, 05 May 2021 00:42:40 +0300

> Revisiting after some recent changes:
>
>> emacs -Q -f tool-bar-mode
>>
>> that disables tool-bar-mode before it's displayed for the first time,
>> and evaluating
>>
>> (let ((initial (assq 'outer-size (frame-geometry))))
>>    (tool-bar-mode 1)
>>    (tool-bar-mode 0)
>>    (list (assq 'outer-size (frame-geometry)) initial))
>>
>> => ((outer-size 680 . 693) (outer-size 680 . 676))
>>
>> indicates growing of the frame's height.
>
> Here I get with a current Lucid (I suppose you will encounter troubles
> building with Motif these days) build
>
> ((outer-size 764 . 702) (outer-size 764 . 702))
>
> whereas on Emacs 27 this was indeed
>
> ((outer-size 764 . 720) (outer-size 764 . 702))
>
> Can you please check again?

Now the frame's height doesn't grow but shrinks on GTK:

((outer-size 694 . 690) (outer-size 694 . 738))

>> OTOH, in a new session again with emacs -Q -f tool-bar-mode
>>
>> (progn
>>    (tool-bar-mode 1)
>>    (assq 'outer-size (frame-geometry)))
>>
>> => (outer-size 680 . 693)
>
> This gets me
>
> (outer-size 764 . 720)

(outer-size 694 . 690)

> but evaluating
>
> (assq 'outer-size (frame-geometry))
>
> once more (it takes time to relate such changes to `frame-geometry') now
> gives
>
> (outer-size 764 . 738)

(outer-size 694 . 738)

> which should yield the same value of (frame-height) as before (please
> check).

(frame-height)
36

> On Emacs 27 this was botched because the outer size changed to
>
> (outer-size 764 . 720)
>
> only and the frame height dropped from 36 to 35 lines.
>
>> (progn
>>    (tool-bar-mode 0)
>>    (assq 'outer-size (frame-geometry)))
>>
>> => (outer-size 680 . 693)
>
> This now gets me
>
> (outer-size 764 . 702)
>
> as expected.

(outer-size 694 . 690)

>> It's strange that the results are the same because visually
>> the frame's height grows.

> So please have one more look into this issue.

Do you think now it's improved?