Subject: bug#76279: closed (Re: bug#76279: 31.0.50; ERC 5.6.1-git: scrolltobottom-mode broken on certain global text scaling)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 16 Feb 2025 19:45:03 +0000

Your bug report

#76279: 31.0.50; ERC 5.6.1-git: scrolltobottom-mode broken on certain global text scaling

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
76279: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76279
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#76279: 31.0.50; ERC 5.6.1-git: scrolltobottom-mode broken on certain global text scaling
From: "J.P." <[email-masked]>
To: Trevor Arjeski <[email-masked]>
Cc: Eli Zaretskii <[email-masked]>, [email-masked], [email-masked]
Date: Sun, 16 Feb 2025 11:44:05 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Trevor Arjeski <[email-masked]> writes:

> "J.P." <[email-masked]> writes:
>
>> Trevor Arjeski <[email-masked]> writes:
>>
>>> Eli Zaretskii <[email-masked]> writes:
>>>
>>>>> From: Trevor Arjeski <[email-masked]>
>>>>> Date: Fri, 14 Feb 2025 10:24:12 +0300
>>>>> 
>>>>> Minimal configuration:
>>>>> (use-package erc
>>>>>   :config
>>>>>   (setopt erc-modules '(scrolltobottom))
>>>>>   (erc-scrolltobottom-mode))
>>>>> 
>>>>> 1. Use above config to ensure scrolltobottom module is loaded
>>>>> 2. Start erc with a connection to libera (M-x erc-tls)
>>>>> 3. C-x 1 on the erc buffer window to make it the sole window
>>>>> 4. Once the Libera buffer is loaded, this should be a sufficient number
>>>>> of lines to trigger scroll to bottom.
>>>>> 5. On some resolutions or window size this may be enough to see that the
>>>>> input line (ERC>) is not at the bottom of the window, but in the
>>>>> middle. If not, proceed to step 6.
>>>>> 6. Invoke (global-text-scale-adjust) using C-x C-M-= and continue to
>>>>> press the "=" key until you can notice that the input line jumps to the
>>>>> center of the window.
>>>>
>>>> Aren't you supposed to set erc-input-line-position to -1 if you want
>>>> the prompt to always be at the last line?
>>>
>>> Does not seem to make a difference for me and also in the
>>> `erc-scroll-to-bottom' procedure of erc-goodies.el it seems to already
>>> do that by default with `(or erc-input-line-position -1)', right?
>>
>> Does configuring `erc-scrolltobottom-all' to t help any? (Note that you
>> must do so before connecting or else cycle the module's minor mode.)
>
> That DOES work! Uncovering the mysteries of erc...
>
> We can close this now. Thanks, J.P!

Done, thanks.

> Trevor

Subject: 31.0.50; ERC 5.6.1-git: scrolltobottom-mode broken on certain global text scaling
From: Trevor Arjeski <[email-masked]>
To: [email-masked]
Date: Fri, 14 Feb 2025 10:24:12 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Minimal configuration:
(use-package erc
  :config
  (setopt erc-modules '(scrolltobottom))
  (erc-scrolltobottom-mode))

1. Use above config to ensure scrolltobottom module is loaded
2. Start erc with a connection to libera (M-x erc-tls)
3. C-x 1 on the erc buffer window to make it the sole window
4. Once the Libera buffer is loaded, this should be a sufficient number
of lines to trigger scroll to bottom.
5. On some resolutions or window size this may be enough to see that the
input line (ERC>) is not at the bottom of the window, but in the
middle. If not, proceed to step 6.
6. Invoke (global-text-scale-adjust) using C-x C-M-= and continue to
press the "=" key until you can notice that the input line jumps to the
center of the window.

Attached, find a video of the issue.

In GNU Emacs 31.0.50 (build 6, x86_64-pc-linux-gnu, GTK+ Version
 3.24.48, cairo version 1.18.2) of 2025-02-07 built on trevarch
Repository revision: 0c0f5f5df24947f0658c274f9fa62829ef5401dd
Repository branch: makepkg
System Description: Arch Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-modules --without-m17n-flt --without-gconf
 --with-native-compilation=yes --with-xinput2 --with-pgtk
 --without-xaw3d --with-sound=no --with-tree-sitter --without-gpm
 --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer
 -mno-omit-leaf-frame-pointer -Wno-implicit-function-declaration -g
 -ffile-prefix-map=/home/trev/Workspace/emacs-git/src=/usr/src/debug/emacs-git
 -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed
 -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto'
 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer
 -mno-omit-leaf-frame-pointer -Wno-implicit-function-declaration
 -Wp,-D_GLIBCXX_ASSERTIONS -g
 -ffile-prefix-map=/home/trev/Workspace/emacs-git/src=/usr/src/debug/emacs-git
 -flto=auto''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM GTK3 ZLIB

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

Major mode: ELisp/l

Minor modes in effect:
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-spelling-mode: t
  erc-ring-mode: t
  erc-netsplit-mode: t
  erc-menu-mode: t
  erc-match-mode: t
  erc-list-mode: t
  erc-irccontrols-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  erc-imenu-mode: t
  erc-pcomplete-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-autojoin-mode: t
  erc-networks-mode: t
  paredit-mode: t
  display-line-numbers-mode: t
  ligature-mode: t
  rainbow-delimiters-mode: t
  format-all-mode: t
  global-auto-revert-mode: t
  repeat-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  global-treesit-auto-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  savehist-mode: t
  vertico-mode: t
  auto-insert-mode: t
  undo-fu-session-global-mode: t
  undo-fu-session-mode: t
  which-key-mode: t
  electric-pair-mode: t
  desktop-save-mode: t
  recentf-mode: t
  save-place-mode: t
  override-global-mode: t
  global-eldoc-mode: t
  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
  blink-cursor-mode: t
  window-divider-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t

Load-path shadows:
~/.emacs.d//lisp/aoc hides /home/trev/.emacs.d/elpa/aoc-1.0.0/aoc
~/.emacs.d//lisp/launch-program hides /home/trev/.emacs.d/elpa/launch-program-1.0.0/launch-program
~/.emacs.d//lisp/my-secrets hides /home/trev/.emacs.d/elpa/my-secrets-1.0.0/my-secrets

Features:
(shadow sort comp-run comp-common mail-extr emacsbug message yank-media
dired dired-loaddefs rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums cape-char cape face-remap mule-util orderless
network-stream puny nsm erc-track erc-spelling flyspell ispell erc-ring
erc-nicks erc-netsplit erc-menu erc-match erc-list erc-goodies erc-imenu
imenu erc-pcomplete pcomplete erc-button erc-fill erc-stamp erc-join
my-secrets cus-start epa-file epa derived epg rfc6068 epg-config erc
format-spec erc-backend erc-networks erc-common erc-compat erc-loaddefs
paredit display-line-numbers rx ligature rainbow-delimiters format-all
language-id inheritenv vc-git diff-mode track-changes files-x
vc-dispatcher jka-compr toml-ts-mode autorevert filenotify repeat init
gnus nnheader gnus-util time-date mail-utils range mm-util mail-prsvr
cus-edit pp ws-butler treesit-auto treesit corfu-popupinfo corfu
marginalia savehist vertico compat autoinsert grep compile
text-property-search comint ansi-osc ansi-color ring cus-load
undo-fu-session which-key diminish finder-inf edmacro kmacro elec-pair
desktop frameset recentf tree-widget wid-edit saveplace nord-theme
autothemer color lisp-mnt dash use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode package browse-url xdg url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap url-handlers url-parse auth-source eieio eieio-core
icons password-cache json subr-x map byte-opt url-vars cl-macs gv
cl-extra help-mode cl-seq use-package-core cl-loaddefs cl-lib bytecomp
byte-compile info 2048-game-autoloads ace-window-autoloads aio-autoloads
aoc-autoloads autothemer-autoloads avy-autoloads
benchmark-init-autoloads cape-autoloads corfu-autoloads
debbugs-autoloads diff-hl-autoloads diminish-autoloads elfeed-autoloads
emacsql-autoloads envrc-autoloads format-all-autoloads
geiser-guile-autoloads geiser-autoloads git-modes-autoloads
heap-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads
ht-autoloads inheritenv-autoloads language-id-autoloads
launch-program-autoloads ligature-autoloads log4e-autoloads
magit-autoloads magit-section-autoloads dash-autoloads
marginalia-autoloads markdown-mode-autoloads my-secrets-autoloads
orderless-autoloads paredit-autoloads rainbow-delimiters-autoloads
rainbow-mode-autoloads request-autoloads rust-mode-autoloads s-autoloads
sly-autoloads treesit-auto-autoloads undo-fu-autoloads
undo-fu-session-autoloads vertico-autoloads vterm-autoloads
with-editor-autoloads ws-butler-autoloads early-init rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
touch-screen pgtk-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 dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar
make-network-process tty-child-frames native-compile emacs)

Memory information:
((conses 16 456584 378656) (symbols 48 21667 25) (strings 32 81263 23083)
 (string-bytes 1 2810236) (vectors 16 41956) (vector-slots 8 1274059 373114)
 (floats 8 354 1179) (intervals 56 13798 12216) (buffers 992 25))