Subject: bug#70041: 30.0.50; mouse-autoselect-window causes unexpected scroll

From: Deric Bytes <[email-masked]>
Date: Wed, 27 Mar 2024 23:16:26 +0000

Expected behavour:

Run the code below in emacs -Q.  The 'my-buf' buffer should be showing
the start of the buffer with contents of directory listing.

Actual behaviour:

The buffer appears empty, until buffer interaction. Page has scrolled to
end and
content dissappeared from sight even though the whole content can fit into
the buffer.

The expected behaviour happens when `mouse-autoselect-window' has it's
default setting.

(setq mouse-autoselect-window 0.1)

(let ((shell-cmd "ls -la")
      (output-buffer "my-buf")
      (default-directory "/scpx:[email-masked]:")
      (shell-program "/usr/bin/bash")
      (process-name "my-proc"))
  (start-file-process process-name (get-buffer-create output-buffer)
         shell-program  "-c" shell-cmd)
  (switch-to-buffer output-buffer)
  (with-current-buffer output-buffer
    (goto-char (point-min))
    (find-file-other-window "ooo")))

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.37, cairo version 1.16.0) of 2023-05-13 built on no-control-x1c
Repository revision: 7791907c3852e6ec197352e1c3d3dd8487cc04f5
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Ubuntu 23.10

Configured using:
 'configure --with-tree-sitter --with-mailutils --with-json
 --with-xwidgets --with-modules --with-imagemagick
 --prefix=/home/no-control/installs --bindir=/home/no-control/bin
 --with-native-compilation=no --with-xft'

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

Important settings:
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  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
  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 emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils thai-util thai-word mule-util
lao-util enriched disp-table facemenu view thingatpt vc-hg vc-git
diff-mode easy-mmode vc-bzr vc-dispatcher tramp-cmds tramp-cache
time-stamp tramp-sh tramp rx tramp-loaddefs trampver tramp-integration
files-x tramp-compat xdg shell pcomplete comint ansi-osc ansi-color ring
parse-time iso8601 ls-lisp format-spec auth-source cl-seq eieio
eieio-core cl-macs password-cache json map time-date subr-x help-fns
radix-tree cl-print byte-opt debug backtrace help-mode find-func
use-package-core cl-loaddefs cl-lib bytecomp byte-compile chemacs gv 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 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 inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
xinput2 x multi-tty make-network-process emacs)

Memory information:
((conses 16 175970 15742)
 (symbols 48 10757 0)
 (strings 32 35076 2527)
 (string-bytes 1 1130443)
 (vectors 16 22552)
 (vector-slots 8 345228 14831)
 (floats 8 64 75)
 (intervals 56 866 6)
 (buffers 984 18))