Subject: Tool-bar-mode grows the frame's height
From: Juri Linkov <[email-masked]>
To: [email-masked]
Date: Fri, 04 Oct 2019 01:20:59 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

This is a followup to emacs-devel thread with 100% reproducible test case.

On master with any earlier revision before the tabs branch was merged,
and compiled for a Motif or Lucid toolkit, i.e. any build without external
tool-bar, i.e. not GTK builds, (also note that some confusion on emacs-devel
with inconsistent results was caused by not using the required `make clean'
in the lwlib directory after switching toolkits) running

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.

Evaluating the same again produces the correct result:

=> ((outer-size 680 . 693) (outer-size 680 . 693))

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)

(progn
  (tool-bar-mode 0)
  (assq 'outer-size (frame-geometry)))

=> (outer-size 680 . 693)

It's strange that the results are the same because visually
the frame's height grows.  Maybe this is specific to the window manager?
My window manager is MATE.

In GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, Motif Version 2.3.8)
 of 2019-10-04 built on localhost
Repository revision: d8e741548cd5221d51536a0cbeabde2e4d925054
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Linux Mint 19

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Tool-Bar mode disabled

Configured using:
 'configure --with-x-toolkit=motif --enable-checking=yes,glyphs
 --enable-check-lisp-object-type 'CFLAGS=-O0 -g3 -gdwarf-4''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY
GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS MOTIF X11 XDBE XIM THREADS PDUMPER LCMS2 GMP

Important settings:
  value of $LC_MONETARY: et_EE.UTF-8
  value of $LC_NUMERIC: fi_FI.UTF-8
  value of $LC_TIME: en_DK.utf8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix