Subject: bug#74430: 30.0.92; pixel-scroll-precision-mode hiding Eshell prompt after some commands

From: Ashton Wiersdorf <[email-masked]>
Date: Mon, 18 Nov 2024 10:52:27 -0700

Reproducing the bug from emacs -Q

I had this as my `early-init.el`:

    (setq package-enable-at-startup nil)
    (setq frame-resize-pixelwise t)

and this as `init.el`:

    (pixel-scroll-precision-mode)

Then, when Emacs started, I resized the window so it wasn't a 
multiple
of a full character's height.

Next, I ran `M-x eshell` and went to an Elixir project where I ran 
`mix
test`. This bit shouldn't be important, but it's the most reliable 
way I
could find to trigger the bug, unfortunately. I'll report back if 
I find
another easily reproducible command that trigger the behavior.

When the command finished, the Eshell prompt was almost entirely
obscured by the modeline.

The bug does not manifest when I turn off 
`pixel-scroll-precision-mode`.
It returns when I turn `pixel-scroll-precision-mode` back on.

In GNU Emacs 30.0.92 (build 2, aarch64-apple-darwin24.1.0, NS
 appkit-2575.20 Version 15.1 (Build 24B83)) of 2024-11-05 built on
 vulcan.local
Windowing system distributor 'Apple', version 10.3.2575
System Description:  macOS 15.1

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp
 --infodir=/opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/info/emacs
 --prefix=/opt/homebrew/Cellar/emacs-plus@30/30.0.92 --with-xml2
 --with-gnutls --with-native-compilation=aot 
 --without-compress-install
 --with-dbus --with-imagemagick --with-modules --with-rsvg 
 --with-webp
 --without-pop --with-xwidgets --with-ns 
 --disable-ns-self-contained
 'CFLAGS=-O2 -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT
 -I/opt/homebrew/opt/gcc/include 
 -I/opt/homebrew/opt/libgccjit/include'
 'LDFLAGS=-L/opt/homebrew/lib/gcc/14 
 -I/opt/homebrew/opt/gcc/include
 -I/opt/homebrew/opt/libgccjit/include''

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2 
MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Eshell

Minor modes in effect:
  eshell-prompt-mode: t
  eshell-pred-mode: t
  eshell-hist-mode: t
  eshell-cmpl-mode: t
  eshell-proc-mode: t
  eshell-arg-mode: t
  pixel-scroll-precision-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr compile comp-run comp-common emacsbug 
message
mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
password-cache epa derived epg rfc6068 epg-config gnus-util 
time-date
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev 
gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils cl-seq pcmpl-unix cl-extra help-mode rx em-unix em-term 
term
disp-table shell ehelp em-script em-prompt text-property-search 
em-pred
em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic 
em-banner
em-alias esh-mode esh-var eshell esh-cmd generator cl-loaddefs 
cl-lib
esh-ext esh-opt esh-proc esh-io byte-opt gv bytecomp byte-compile
esh-arg pcomplete comint ansi-osc ansi-color esh-module
esh-module-loaddefs esh-util files-x pixel-scroll cua-base ring 
subr-x
rmc iso-transl tooltip cconv eldoc paren electric uniquify 
ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win 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 xwidget-internal 
dbusbind
kqueue cocoa ns lcms2 multi-tty make-network-process 
native-compile
emacs)

Memory information:
((conses 16 107402 9344) (symbols 48 8995 0) (strings 32 25963 
2526)
 (string-bytes 1 865352) (vectors 16 16688)
 (vector-slots 8 212549 7121) (floats 8 179 59) (intervals 56 579 
 0)
 (buffers 992 14))

-- 
Ashton Wiersdorf
https://lambdaland.org/