Subject: 29.1; Clicking buttons sometimes doesn't work

From: [email-masked]
Date: Fri, 20 Oct 2023 20:27:19 +0000

If using =display-line-numbers-mode= with the =visual= style set for it,
sometimes clicking buttons does not actually click it. It instead shifts
the buffer slightly, either to the left or to the right, and a mark is
set (by clicking I refer with the mouse, specifically). You will need to
press again in order to actually click the button.

This is inconsistent, there's no guarantee that it will happen, it
sometimes does, but it is often enough for you to be able to notice within
just a couple of seconds of clicking through things.

You can launch =emacs -Q= and run these two lines:

(setq display-line-numbers-type 'visual)
(global-display-line-numbers-mode)

Then just click through buttons. A good test is to open the emacs manual
=C-h R emacs= since it has a big index.

The bug does not happen with =relative= style line numbers.

In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
cairo version 1.17.8)
System Description: Arch Linux

Configured using:
 'configure --with-pgtk --with-native-compilation=aot --sysconfdir=/etc
 --prefix=/usr --libexecdir=/usr/lib --with-tree-sitter
 --localstatedir=/var --with-cairo --disable-build-details
 --with-harfbuzz --with-libsystemd --with-modules 'CFLAGS=-march=x86-64
 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2
 -Wformat -Werror=format-security -fstack-clash-protection
 -fcf-protection -g
 -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto'
 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto'
 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -g
 -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs -flto=auto''

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

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

Major mode: Dashboard

Minor modes in effect:
 global-undo-tree-mode: t
 undo-tree-mode: t
 marginalia-mode: t
 which-key-mode: t
 global-tree-sitter-mode: t
 recentf-mode: t
 treemacs-filewatch-mode: t
 treemacs-follow-mode: t
 treemacs-git-mode: t
 global-git-commit-mode: t
 magit-auto-revert-mode: t
 shell-dirtrack-mode: t
 override-global-mode: t
 vertico-mouse-mode: t
 vertico-mode: t
 global-company-mode: t
 company-mode: t
 pixel-scroll-precision-mode: t
 xterm-mouse-mode: t
 global-auto-revert-mode: t
 electric-pair-mode: t
 delete-selection-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
 context-menu-mode: t
 global-font-lock-mode: t
 font-lock-mode: t
 blink-cursor-mode: t
 buffer-read-only: t
 line-number-mode: t
 transient-mark-mode: t
 auto-composition-mode: t
 auto-encryption-mode: t
 auto-compression-mode: t

Load-path shadows:
/home/tralph3/.local/share/emacs/elpa/transient-20230919.2146/transient hides /usr/share/emacs/29.1/lisp/transient
/home/tralph3/.local/share/emacs/elpa/seq-2.24/seq hides /usr/share/emacs/29.1/lisp/emacs-lisp/seq

Features:
(shadow sort mail-extr emacsbug mule-util display-line-numbers time
org-tempo tempo eglot external-completion array jsonrpc ert ewoc debug
backtrace flymake-proc flymake vterm tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time iso8601 face-remap
term disp-table ehelp vterm-module term/xterm xterm embark-consult
consult treemacs-bookmarks treemacs-tags magit-bookmark bookmark
embark-org embark multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core advice rect undo-tree queue org-fragtog
org-superstar org-element org-persist xdg org-id org-refile avl-tree org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint
org-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 find-func cal-menu calendar
cal-loaddefs org-version org-compat org-macs marginalia which-key
tree-sitter-langs tree-sitter-langs-build tar-mode arc-mode archive-mode
pp tree-sitter-hl tree-sitter tree-sitter-load tree-sitter-cli tsc
tsc-dyn tsc-dyn-get dired-aux tsc-obsolete dashboard dashboard-widgets
recentf tree-widget wid-edit ffap treemacs treemacs-header-line
treemacs-compatibility treemacs-mode treemacs-interface
treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
treemacs-rendering treemacs-annotations treemacs-async
treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator pulse color treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture inline
hl-line ht treemacs-logging treemacs-customization treemacs-macros s
orderless magit-submodule magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode git-commit log-edit message
sendmail 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 pcvs-util add-log
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor shell pcomplete server magit-mode transient magit-git
magit-base magit-section format-spec cursor-sensor crm dash
use-package-bind-key bind-key easy-mmode vertico-mouse vertico compat
yaml-mode lua-mode edmacro kmacro dart-mode flutter flutter-l10n
flutter-project rust-utils thingatpt rust-mode rust-rustfmt rust-playpen
rust-compile compile text-property-search comint ansi-osc ansi-color
rust-cargo company-oddmuse company-keywords company-etags etags fileloop
generator xref project company-gtags company-dabbrev-code
company-dabbrev company-files company-clang company-capf company-cmake
company-semantic company-template company-bbdb company all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons use-package-ensure
use-package-core system-theme system-theme-theme pixel-scroll cua-base
ring xt-mouse autorevert filenotify elec-pair delsel comp comp-cstr
warnings icons rx cl-extra help-mode all-the-icons-autoloads
company-autoloads corfu-autoloads dart-mode-autoloads
dashboard-autoloads dirvish-autoloads embark-consult-autoloads
consult-autoloads embark-autoloads flutter-autoloads kind-icon-autoloads
lua-mode-autoloads magit-autoloads pcase git-commit-autoloads
marginalia-autoloads multiple-cursors-autoloads orderless-autoloads
org-fragtog-autoloads org-roam-ui-autoloads org-roam-autoloads
magit-section-autoloads emacsql-autoloads org-superstar-autoloads
rust-mode-autoloads simple-httpd-autoloads svg-lib-autoloads
transient-autoloads tree-sitter-langs-autoloads tree-sitter-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
avy-autoloads s-autoloads dash-autoloads tsc-autoloads
undo-tree-autoloads queue-autoloads vertico-autoloads vterm-autoloads
websocket-autoloads which-key-autoloads with-editor-autoloads info
compat-autoloads seq-autoloads yaml-mode-autoloads package browse-url
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 cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib 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 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 make-network-process
native-compile emacs)

Memory information:
((conses 16 446436 331408)
 (symbols 48 33070 158)
 (strings 32 125268 59058)
 (string-bytes 1 4550538)
 (vectors 16 73483)
 (vector-slots 8 1709579 787318)
 (floats 8 1069 2511)
 (intervals 56 1048 450)
 (buffers 984 14))