Subject: 28.0.50; tool-bar :vert-only property is broken, not documented and of limited use

From: Stefan Kangas <[email-masked]>
Date: Tue, 5 Oct 2021 19:57:51 -0400

According to commit d2bd51898e4 the :vert-only property for toolbar
items is supposed to be "for tool bar items with labels not shown
horizontally".

These properties are used in some places in our sources, but are not
documented in (info "(elisp) Tool Bar").

They also don't seem to be working, at least not in GTK:

  0. emacs -Q
  1. (custom-set-variables '(tool-bar-position 'left))
  2. M-x mpc RET

  (Note that the entire tool-bar in mpc.el has the :vert-only property.)

This is extra strange as AFAICT, the only place where we check for this
property is in gtkutil.c.  So the only place where it was implemented,
the feature is broken?

I also do wonder if this property is at all useful.  If anything, I
would like the option to *hide* labels in horizontal mode, as having
labels makes the toolbar change size when I switch between windows to
with different major modes.  This makes windows jump around
horizontally, which is eminently unusable.  (But this would be more
useful as a global user option than as properties, set to t by default,
to avoid the jumping.)

So should the :vert-only property be documented?  Fixed?  Removed?

In GNU Emacs 28.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version
3.24.24, cairo version 1.16.0)
 of 2021-09-30 built on joffe
Repository revision: ec9e8a9961362cd238879c9e96617ebd2f64af9a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure --with-native-compilation'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LC_CTYPE: sv_SE.UTF-8
  value of $LC_TIME: C
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix