Subject: 30.0.50; mode-line-format-right-align can make part of the modeline content disappear when eldoc is enabled

From: John Task <[email-masked]>
Date: Sun, 27 Aug 2023 13:18:56 -0300

Steps to reproduce:

+ Start Emacs with emacs -Q

+ Evaluate the following code:

    (setq-default mode-line-format
                  '("%e" mode-line-front-space
                    (:propertize
                     ("" mode-line-mule-info mode-line-client mode-line-modified
                      mode-line-remote)
                     display (min-width (5.0)))
                    mode-line-frame-identification
                    mode-line-buffer-identification
                    "   " mode-line-position
                    (vc-mode vc-mode) "  "
                    ;; Right align
                    mode-line-format-right-align
                    mode-line-modes mode-line-misc-info mode-line-end-spaces))

+ Type anything that triggers eldoc while in the minibuffer.  For instance:

    M-: ( c d

    [Wait for eldoc to appear]

+ Quit with C-g

Note that the right half of the modeline (which contains the major
mode) is no longer displayed.  It won't come back, not even with M-:
(force-mode-line-update) RET.  However, this only affects the current
buffer.

------------------------------------------------------------------------------

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0, Xaw scroll bars) of 2023-08-26 built on gnulinux-pureos
Repository revision: d8b528c896778305313dcafb0a4be967935747c8
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: PureOS 10 (Byzantium)

Configured using:
 'configure --without-compress-install --with-native-compilation
 --with-json --with-mailutils --with-x-toolkit=lucid --with-tree-sitter'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
WEBP X11 XDBE XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LC_MONETARY: es_AR.UTF-8
  value of $LC_NUMERIC: es_AR.UTF-8
  value of $LC_TIME: es_AR.UTF-8
  value of $LANG: es_AR.UTF-8
  locale-coding-system: utf-8-unix

Major mode: mu4e:main

Minor modes in effect:
  mu4e-search-minor-mode: t
  mu4e-update-minor-mode: t
  mu4e-context-minor-mode: t
  mu4e-modeline-mode: t
  display-time-mode: t
  display-battery-mode: t
  vertico-mode: t
  which-key-mode: t
  recentf-mode: t
  midnight-mode: t
  marginalia-mode: t
  good-line-mode: t
  override-global-mode: t
  delete-selection-mode: t
  winner-mode: t
  repeat-mode: t
  save-place-mode: t
  global-so-long-mode: t
  minibuffer-depth-indicate-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  global-auto-revert-mode: t
  jt-global-word-wrap-mode: t
  jt-word-wrap-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  overwrite-mode: overwrite-mode-binary

Features:
(shadow sort capital mail-extr emacsbug vertico-directory cursor-sensor
websearch websearch-custom compile mu4e mu4e-org ox-texinfo ox-md
ox-extra ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox org-tempo tempo
org-protocol org-habit org-agenda ob-scheme geiser-impl help-fns
radix-tree geiser-custom geiser-base geiser ob-gnuplot ob-calc
calc-store calc-trail calc-ext calc calc-loaddefs rect calc-macs
ob-shell shell ob-python python project treesit ob-C cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
embark-org org-element org-persist xdg org-id org-refile avl-tree
generator org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src ob-comint org-pcomplete pcomplete org-list org-footnote
org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs
advice find-func org-version org-compat org-macs mu4e-notification
notifications mu4e-main mu4e-view comint ansi-osc ansi-color gnus-art
mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum gnus-group
gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7
nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus
nnheader range mu4e-headers mu4e-compose mu4e-draft mu4e-actions
smtpmail mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message
shr pixel-fill kinsoku url-file svg dom browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util flow-fill mule-util mu4e-contacts
mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server
mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido message
sendmail mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
epa derived epg rfc6068 epg-config gnus-util time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
mu4e-obsolete view display-line-numbers highlight-numbers parent-mode
hl-line solar cal-dst cal-menu calendar cal-loaddefs spanish
personal-lisp time display-time-improved battery dbus comp comp-cstr
warnings rx xml doom-one-theme vertico which-key server recentf
tree-widget orderless pcase move-text midnight marginalia jt-hydras
hydra lv good-line embark ffap thingatpt url-parse auth-source
password-cache json map url-vars doom-themes doom-themes-base jt-climbs
climber transient format-spec eieio eieio-core bookmark
text-property-search edmacro kmacro byte-opt cl-macs gv cl-extra
help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core bytecomp byte-compile delsel winner repeat saveplace
cl-seq so-long mb-depth savehist minibuf-eldef autorevert filenotify
cus-edit pp cus-load icons wid-edit jt-emacs-lisp compat ring subr-x
cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty move-toolbar make-network-process native-compile
emacs)

Memory information:
((conses 16 507881 87349) (symbols 48 35844 3)
 (strings 32 121892 5084) (string-bytes 1 4243859) (vectors 16 64392)
 (vector-slots 8 1093034 33308) (floats 8 970 8223)
 (intervals 56 966 318) (buffers 992 15))