unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#55411: 29.0.50; handle_one_xevent (xterm.c) incorrectly considers button 8 as a wheel
@ 2022-05-14 15:28 Derek Upham
  2022-05-15  1:03 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 2+ messages in thread
From: Derek Upham @ 2022-05-14 15:28 UTC (permalink / raw)
  To: 55411


The handle_one_xevent function in xterm.c has code to re-interpret
X11 button events as wheel events:

    if (xev->detail >= 4 && xev->detail <= 8)
      {
        if (xev->evtype == XI_ButtonRelease)
          {
            if (xev->detail <= 5)
              inev.ie.kind = WHEEL_EVENT;
            else
              inev.ie.kind = HORIZ_WHEEL_EVENT;

The current logic assigns buttons 4 and 5 to WHEEL_EVENT, and buttons 6, 7,
*and* 8 as horizontal wheel events.

The libinput(4) manual says the following in its section "BUTTON
MAPPING":

  X clients receive events with logical button numbers, where 1, 2, 3 are
  usually interpreted as left, middle, right and logical buttons 4, 5, 6,
  7 are usually interpreted as scroll up, down, left, right.  The fourth
  and fifth physical buttons on a device will thus send logical buttons 8
  and 9.

This means Emacs doesn't follow the X11 conventions around scroll
buttons.  My particular failure mode is with a Perfit Contour Mouse,
which has three standard buttons (1, 2, 3), a vertical wheel (4, 5) and
a hat switch (8, 9).  Emacs interprets one hat switch direction as a
horizontal wheel event (button 8), while the other switch direction is a
normal button (button 9).

The GTK code has a comparable bug, with different numbers and comparison
operators:

    if (xev->detail > 3 && xev->detail < 9 && f)
      {
        if (xev->evtype == XI_ButtonRelease)
          {
            if (FRAME_X_WINDOW (f) != xev->event)
              XTranslateCoordinates (dpyinfo->display, xev->event,
                                     FRAME_X_WINDOW (f), real_x,
                                     real_y, &real_x, &real_y, &child);

            if (xev->detail <= 5)
              inev.ie.kind = WHEEL_EVENT;
            else
              inev.ie.kind = HORIZ_WHEEL_EVENT;



In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0)
 of 2022-05-09, unofficial emacs-snapshot build: http://emacs.secretsauce.net built on lilbastard
Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
System Description: Debian GNU/Linux bookworm/sid

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-native-compilation
 --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/29.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.0.50/site-lisp:/usr/share/emacs/site-lisp
 --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
 --with-native-compilation --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/29.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.0.50/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-imagemagick --with-x-toolkit=gtk3
 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -ffile-prefix-map=/build/emacs-snapshot-Bw8doU/emacs-snapshot-20220509+emacs-28.1-155718-g6fc54786c3b=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall -fno-omit-frame-pointer'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

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

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

Major mode: C/*lahw

Minor modes in effect:
  bug-reference-prog-mode: t
  which-function-mode: t
  subword-mode: t
  amx-mode: t
  shell-dirtrack-mode: t
  global-corfu-mode: t
  corfu-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  minibuffer-depth-indicate-mode: t
  minibuffer-electric-default-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  abbrev-mode: t

Load-path shadows:
~/.elisp-local/slime-autoloads hides /home/sand/.emacs.d/elpa/slime-20220302.1215/slime-autoloads
~/.elisp-local/slime hides /home/sand/.emacs.d/elpa/slime-20220302.1215/slime
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-vm-aux hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-vm-aux
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-snarf hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-snarf
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-pgp hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-pgp
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-gnus hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-gnus
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-anniv hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-anniv
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-migrate hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-migrate
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-message hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-message
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-gnus-aux hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-gnus-aux
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-wl hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-wl
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-pkg hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-pkg
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-ispell hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-ispell
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-mua hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-mua
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-sc hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-sc
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-mhe hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-mhe
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-site hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-site
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-com hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-com
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-rmail hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-rmail
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-tex hides /usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-tex
/home/sand/.emacs.d/elpa/miniedit-20100419.1745/miniedit hides /usr/share/emacs/29.0.50/site-lisp/emacs-goodies-el/miniedit
/home/sand/.emacs.d/elpa/htmlize-20210825.2150/htmlize hides /usr/share/emacs/29.0.50/site-lisp/emacs-goodies-el/htmlize
/home/sand/src/x11/sawfish-git/sawfish hides /usr/share/emacs/29.0.50/site-lisp/sawfish/sawfish
/home/sand/.emacs.d/elpa/slime-20220302.1215/slime-pkg hides /usr/share/emacs/29.0.50/site-lisp/elpa/slime-2.27/slime-pkg
/home/sand/.emacs.d/elpa/slime-20220302.1215/slime-tests hides /usr/share/emacs/29.0.50/site-lisp/elpa/slime-2.27/slime-tests
~/.elisp-local/slime-autoloads hides /usr/share/emacs/29.0.50/site-lisp/elpa/slime-2.27/slime-autoloads
~/.elisp-local/slime hides /usr/share/emacs/29.0.50/site-lisp/elpa/slime-2.27/slime
~/.elisp-local/slime-repl hides /usr/share/emacs/29.0.50/site-lisp/elpa/slime-2.27/contrib/slime-repl
/usr/share/emacs/29.0.50/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-pgp hides /usr/share/emacs/site-lisp/bbdb3/bbdb-pgp
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-anniv hides /usr/share/emacs/site-lisp/bbdb3/bbdb-anniv
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-message hides /usr/share/emacs/site-lisp/bbdb3/bbdb-message
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-gnus-aux hides /usr/share/emacs/site-lisp/bbdb3/bbdb-gnus-aux
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-pkg hides /usr/share/emacs/site-lisp/bbdb3/bbdb-pkg
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-mua hides /usr/share/emacs/site-lisp/bbdb3/bbdb-mua
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-vm-aux hides /usr/share/emacs/site-lisp/bbdb3/bbdb-vm-aux
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-site hides /usr/share/emacs/site-lisp/bbdb3/bbdb-site
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-snarf hides /usr/share/emacs/site-lisp/bbdb3/bbdb-snarf
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-wl hides /usr/share/emacs/site-lisp/bbdb3/bbdb-wl
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-ispell hides /usr/share/emacs/site-lisp/bbdb3/bbdb-ispell
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-mhe hides /usr/share/emacs/site-lisp/bbdb3/bbdb-mhe
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-sc hides /usr/share/emacs/site-lisp/bbdb3/bbdb-sc
/usr/share/emacs/29.0.50/site-lisp/bbdb3/bbdb-loaddefs hides /usr/share/emacs/site-lisp/bbdb3/bbdb-loaddefs
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-vm hides /usr/share/emacs/site-lisp/bbdb3/bbdb-vm
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-mu4e hides /usr/share/emacs/site-lisp/bbdb3/bbdb-mu4e
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-com hides /usr/share/emacs/site-lisp/bbdb3/bbdb-com
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-rmail hides /usr/share/emacs/site-lisp/bbdb3/bbdb-rmail
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-gnus hides /usr/share/emacs/site-lisp/bbdb3/bbdb-gnus
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb hides /usr/share/emacs/site-lisp/bbdb3/bbdb
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-migrate hides /usr/share/emacs/site-lisp/bbdb3/bbdb-migrate
/home/sand/.emacs.d/elpa/bbdb-20220416.405/bbdb-tex hides /usr/share/emacs/site-lisp/bbdb3/bbdb-tex
/home/sand/src/x11/sawfish-git/sawfish hides /usr/share/emacs/site-lisp/sawfish/sawfish
/home/sand/.emacs.d/elpa/slime-20220302.1215/slime-pkg hides /usr/share/emacs/site-lisp/elpa/slime-2.27/slime-pkg
/home/sand/.emacs.d/elpa/slime-20220302.1215/slime-tests hides /usr/share/emacs/site-lisp/elpa/slime-2.27/slime-tests
~/.elisp-local/slime-autoloads hides /usr/share/emacs/site-lisp/elpa/slime-2.27/slime-autoloads
~/.elisp-local/slime hides /usr/share/emacs/site-lisp/elpa/slime-2.27/slime
/home/sand/.emacs.d/elpa/slime-20220302.1215/slime-pkg hides /usr/share/emacs/site-lisp/elpa-src/slime-2.27/slime-pkg
/home/sand/.emacs.d/elpa/slime-20220302.1215/slime-tests hides /usr/share/emacs/site-lisp/elpa-src/slime-2.27/slime-tests
~/.elisp-local/slime-autoloads hides /usr/share/emacs/site-lisp/elpa-src/slime-2.27/slime-autoloads
~/.elisp-local/slime hides /usr/share/emacs/site-lisp/elpa-src/slime-2.27/slime
/home/sand/.emacs.d/elpa/transient-20220503.1118/transient hides /usr/share/emacs/29.0.50/lisp/transient
/home/sand/.emacs.d/elpa/org-20210913/ob-sed hides /usr/share/emacs/29.0.50/lisp/org/ob-sed
/home/sand/.emacs.d/elpa/org-20210913/org-duration hides /usr/share/emacs/29.0.50/lisp/org/org-duration
/home/sand/.emacs.d/elpa/org-20210913/ob-tangle hides /usr/share/emacs/29.0.50/lisp/org/ob-tangle
/home/sand/.emacs.d/elpa/org-20210913/ol-eww hides /usr/share/emacs/29.0.50/lisp/org/ol-eww
/home/sand/.emacs.d/elpa/org-20210913/org-macro hides /usr/share/emacs/29.0.50/lisp/org/org-macro
/home/sand/.emacs.d/elpa/org-20210913/org-colview hides /usr/share/emacs/29.0.50/lisp/org/org-colview
/home/sand/.emacs.d/elpa/org-20210913/org-datetree hides /usr/share/emacs/29.0.50/lisp/org/org-datetree
/home/sand/.emacs.d/elpa/org-20210913/ox-icalendar hides /usr/share/emacs/29.0.50/lisp/org/ox-icalendar
/home/sand/.emacs.d/elpa/org-20210913/ob-lisp hides /usr/share/emacs/29.0.50/lisp/org/ob-lisp
/home/sand/.emacs.d/elpa/org-20210913/ol-irc hides /usr/share/emacs/29.0.50/lisp/org/ol-irc
/home/sand/.emacs.d/elpa/org-20210913/org-pcomplete hides /usr/share/emacs/29.0.50/lisp/org/org-pcomplete
/home/sand/.emacs.d/elpa/org-20210913/ob-lilypond hides /usr/share/emacs/29.0.50/lisp/org/ob-lilypond
/home/sand/.emacs.d/elpa/org-20210913/org-num hides /usr/share/emacs/29.0.50/lisp/org/org-num
/home/sand/.emacs.d/elpa/org-20210913/org-mobile hides /usr/share/emacs/29.0.50/lisp/org/org-mobile
/home/sand/.emacs.d/elpa/org-20210913/org-crypt hides /usr/share/emacs/29.0.50/lisp/org/org-crypt
/home/sand/.emacs.d/elpa/org-20210913/ob-forth hides /usr/share/emacs/29.0.50/lisp/org/ob-forth
/home/sand/.emacs.d/elpa/org-20210913/ox-man hides /usr/share/emacs/29.0.50/lisp/org/ox-man
/home/sand/.emacs.d/elpa/org-20210913/org-attach-git hides /usr/share/emacs/29.0.50/lisp/org/org-attach-git
/home/sand/.emacs.d/elpa/org-20210913/ob-js hides /usr/share/emacs/29.0.50/lisp/org/ob-js
/home/sand/.emacs.d/elpa/org-20210913/ob-eshell hides /usr/share/emacs/29.0.50/lisp/org/ob-eshell
/home/sand/.emacs.d/elpa/org-20210913/ob-gnuplot hides /usr/share/emacs/29.0.50/lisp/org/ob-gnuplot
/home/sand/.emacs.d/elpa/org-20210913/org-keys hides /usr/share/emacs/29.0.50/lisp/org/org-keys
/home/sand/.emacs.d/elpa/org-20210913/ob-dot hides /usr/share/emacs/29.0.50/lisp/org/ob-dot
/home/sand/.emacs.d/elpa/org-20210913/org-protocol hides /usr/share/emacs/29.0.50/lisp/org/org-protocol
/home/sand/.emacs.d/elpa/org-20210913/ol-bibtex hides /usr/share/emacs/29.0.50/lisp/org/ol-bibtex
/home/sand/.emacs.d/elpa/org-20210913/ob-latex hides /usr/share/emacs/29.0.50/lisp/org/ob-latex
/home/sand/.emacs.d/elpa/org-20210913/org-attach hides /usr/share/emacs/29.0.50/lisp/org/org-attach
/home/sand/.emacs.d/elpa/org-20210913/org-tempo hides /usr/share/emacs/29.0.50/lisp/org/org-tempo
/home/sand/.emacs.d/elpa/org-20210913/ob-maxima hides /usr/share/emacs/29.0.50/lisp/org/ob-maxima
/home/sand/.emacs.d/elpa/org-20210913/ob-css hides /usr/share/emacs/29.0.50/lisp/org/ob-css
/home/sand/.emacs.d/elpa/org-20210913/ob-haskell hides /usr/share/emacs/29.0.50/lisp/org/ob-haskell
/home/sand/.emacs.d/elpa/org-20210913/ob-matlab hides /usr/share/emacs/29.0.50/lisp/org/ob-matlab
/home/sand/.emacs.d/elpa/org-20210913/org-compat hides /usr/share/emacs/29.0.50/lisp/org/org-compat
/home/sand/.emacs.d/elpa/org-20210913/ob-awk hides /usr/share/emacs/29.0.50/lisp/org/ob-awk
/home/sand/.emacs.d/elpa/org-20210913/ol-gnus hides /usr/share/emacs/29.0.50/lisp/org/ol-gnus
/home/sand/.emacs.d/elpa/org-20210913/ox-html hides /usr/share/emacs/29.0.50/lisp/org/ox-html
/home/sand/.emacs.d/elpa/org-20210913/ol-mhe hides /usr/share/emacs/29.0.50/lisp/org/ol-mhe
/home/sand/.emacs.d/elpa/org-20210913/ob-org hides /usr/share/emacs/29.0.50/lisp/org/ob-org
/home/sand/.emacs.d/elpa/org-20210913/ob-sass hides /usr/share/emacs/29.0.50/lisp/org/ob-sass
/home/sand/.emacs.d/elpa/org-20210913/org-faces hides /usr/share/emacs/29.0.50/lisp/org/org-faces
/home/sand/.emacs.d/elpa/org-20210913/org-entities hides /usr/share/emacs/29.0.50/lisp/org/org-entities
/home/sand/.emacs.d/elpa/org-20210913/ob-C hides /usr/share/emacs/29.0.50/lisp/org/ob-C
/home/sand/.emacs.d/elpa/org-20210913/ob-java hides /usr/share/emacs/29.0.50/lisp/org/ob-java
/home/sand/.emacs.d/elpa/org-20210913/ob-makefile hides /usr/share/emacs/29.0.50/lisp/org/ob-makefile
/home/sand/.emacs.d/elpa/org-20210913/ob-shell hides /usr/share/emacs/29.0.50/lisp/org/ob-shell
/home/sand/.emacs.d/elpa/org-20210913/ob-sqlite hides /usr/share/emacs/29.0.50/lisp/org/ob-sqlite
/home/sand/.emacs.d/elpa/org-20210913/ob-screen hides /usr/share/emacs/29.0.50/lisp/org/ob-screen
/home/sand/.emacs.d/elpa/org-20210913/org hides /usr/share/emacs/29.0.50/lisp/org/org
/home/sand/.emacs.d/elpa/org-20210913/ox hides /usr/share/emacs/29.0.50/lisp/org/ox
/home/sand/.emacs.d/elpa/org-20210913/ox-texinfo hides /usr/share/emacs/29.0.50/lisp/org/ox-texinfo
/home/sand/.emacs.d/elpa/org-20210913/ol-bbdb hides /usr/share/emacs/29.0.50/lisp/org/ol-bbdb
/home/sand/.emacs.d/elpa/org-20210913/org-loaddefs hides /usr/share/emacs/29.0.50/lisp/org/org-loaddefs
/home/sand/.emacs.d/elpa/org-20210913/ob-perl hides /usr/share/emacs/29.0.50/lisp/org/ob-perl
/home/sand/.emacs.d/elpa/org-20210913/org-lint hides /usr/share/emacs/29.0.50/lisp/org/org-lint
/home/sand/.emacs.d/elpa/org-20210913/org-goto hides /usr/share/emacs/29.0.50/lisp/org/org-goto
/home/sand/.emacs.d/elpa/org-20210913/org-timer hides /usr/share/emacs/29.0.50/lisp/org/org-timer
/home/sand/.emacs.d/elpa/org-20210913/ol hides /usr/share/emacs/29.0.50/lisp/org/ol
/home/sand/.emacs.d/elpa/org-20210913/ob-ref hides /usr/share/emacs/29.0.50/lisp/org/ob-ref
/home/sand/.emacs.d/elpa/org-20210913/org-clock hides /usr/share/emacs/29.0.50/lisp/org/org-clock
/home/sand/.emacs.d/elpa/org-20210913/ox-odt hides /usr/share/emacs/29.0.50/lisp/org/ox-odt
/home/sand/.emacs.d/elpa/org-20210913/ol-rmail hides /usr/share/emacs/29.0.50/lisp/org/ol-rmail
/home/sand/.emacs.d/elpa/org-20210913/ob-processing hides /usr/share/emacs/29.0.50/lisp/org/ob-processing
/home/sand/.emacs.d/elpa/org-20210913/org-src hides /usr/share/emacs/29.0.50/lisp/org/org-src
/home/sand/.emacs.d/elpa/org-20210913/ob-eval hides /usr/share/emacs/29.0.50/lisp/org/ob-eval
/home/sand/.emacs.d/elpa/org-20210913/org-habit hides /usr/share/emacs/29.0.50/lisp/org/org-habit
/home/sand/.emacs.d/elpa/org-20210913/ox-beamer hides /usr/share/emacs/29.0.50/lisp/org/ox-beamer
/home/sand/.emacs.d/elpa/org-20210913/ob-core hides /usr/share/emacs/29.0.50/lisp/org/ob-core
/home/sand/.emacs.d/elpa/org-20210913/ox-md hides /usr/share/emacs/29.0.50/lisp/org/ox-md
/home/sand/.emacs.d/elpa/org-20210913/ob-emacs-lisp hides /usr/share/emacs/29.0.50/lisp/org/ob-emacs-lisp
/home/sand/.emacs.d/elpa/org-20210913/ox-latex hides /usr/share/emacs/29.0.50/lisp/org/ox-latex
/home/sand/.emacs.d/elpa/org-20210913/ob-lob hides /usr/share/emacs/29.0.50/lisp/org/ob-lob
/home/sand/.emacs.d/elpa/org-20210913/ob hides /usr/share/emacs/29.0.50/lisp/org/ob
/home/sand/.emacs.d/elpa/org-20210913/ob-python hides /usr/share/emacs/29.0.50/lisp/org/ob-python
/home/sand/.emacs.d/elpa/org-20210913/ob-groovy hides /usr/share/emacs/29.0.50/lisp/org/ob-groovy
/home/sand/.emacs.d/elpa/org-20210913/org-version hides /usr/share/emacs/29.0.50/lisp/org/org-version
/home/sand/.emacs.d/elpa/org-20210913/org-ctags hides /usr/share/emacs/29.0.50/lisp/org/org-ctags
/home/sand/.emacs.d/elpa/org-20210913/org-inlinetask hides /usr/share/emacs/29.0.50/lisp/org/org-inlinetask
/home/sand/.emacs.d/elpa/org-20210913/ob-ruby hides /usr/share/emacs/29.0.50/lisp/org/ob-ruby
/home/sand/.emacs.d/elpa/org-20210913/ob-plantuml hides /usr/share/emacs/29.0.50/lisp/org/ob-plantuml
/home/sand/.emacs.d/elpa/org-20210913/ob-scheme hides /usr/share/emacs/29.0.50/lisp/org/ob-scheme
/home/sand/.emacs.d/elpa/org-20210913/ob-comint hides /usr/share/emacs/29.0.50/lisp/org/ob-comint
/home/sand/.emacs.d/elpa/org-20210913/ob-calc hides /usr/share/emacs/29.0.50/lisp/org/ob-calc
/home/sand/.emacs.d/elpa/org-20210913/org-list hides /usr/share/emacs/29.0.50/lisp/org/org-list
/home/sand/.emacs.d/elpa/org-20210913/ob-R hides /usr/share/emacs/29.0.50/lisp/org/ob-R
/home/sand/.emacs.d/elpa/org-20210913/org-agenda hides /usr/share/emacs/29.0.50/lisp/org/org-agenda
/home/sand/.emacs.d/elpa/org-20210913/ob-table hides /usr/share/emacs/29.0.50/lisp/org/ob-table
/home/sand/.emacs.d/elpa/org-20210913/ol-eshell hides /usr/share/emacs/29.0.50/lisp/org/ol-eshell
/home/sand/.emacs.d/elpa/org-20210913/org-element hides /usr/share/emacs/29.0.50/lisp/org/org-element
/home/sand/.emacs.d/elpa/org-20210913/ob-exp hides /usr/share/emacs/29.0.50/lisp/org/ob-exp
/home/sand/.emacs.d/elpa/org-20210913/ob-clojure hides /usr/share/emacs/29.0.50/lisp/org/ob-clojure
/home/sand/.emacs.d/elpa/org-20210913/ol-w3m hides /usr/share/emacs/29.0.50/lisp/org/ol-w3m
/home/sand/.emacs.d/elpa/org-20210913/ol-docview hides /usr/share/emacs/29.0.50/lisp/org/ol-docview
/home/sand/.emacs.d/elpa/org-20210913/ob-ocaml hides /usr/share/emacs/29.0.50/lisp/org/ob-ocaml
/home/sand/.emacs.d/elpa/org-20210913/org-feed hides /usr/share/emacs/29.0.50/lisp/org/org-feed
/home/sand/.emacs.d/elpa/org-20210913/org-archive hides /usr/share/emacs/29.0.50/lisp/org/org-archive
/home/sand/.emacs.d/elpa/org-20210913/org-indent hides /usr/share/emacs/29.0.50/lisp/org/org-indent
/home/sand/.emacs.d/elpa/org-20210913/org-mouse hides /usr/share/emacs/29.0.50/lisp/org/org-mouse
/home/sand/.emacs.d/elpa/org-20210913/org-table hides /usr/share/emacs/29.0.50/lisp/org/org-table
/home/sand/.emacs.d/elpa/org-20210913/ob-lua hides /usr/share/emacs/29.0.50/lisp/org/ob-lua
/home/sand/.emacs.d/elpa/org-20210913/ox-ascii hides /usr/share/emacs/29.0.50/lisp/org/ox-ascii
/home/sand/.emacs.d/elpa/org-20210913/org-footnote hides /usr/share/emacs/29.0.50/lisp/org/org-footnote
/home/sand/.emacs.d/elpa/org-20210913/ob-sql hides /usr/share/emacs/29.0.50/lisp/org/ob-sql
/home/sand/.emacs.d/elpa/org-20210913/org-id hides /usr/share/emacs/29.0.50/lisp/org/org-id
/home/sand/.emacs.d/elpa/org-20210913/ol-info hides /usr/share/emacs/29.0.50/lisp/org/ol-info
/home/sand/.emacs.d/elpa/org-20210913/org-capture hides /usr/share/emacs/29.0.50/lisp/org/org-capture
/home/sand/.emacs.d/elpa/org-20210913/ob-fortran hides /usr/share/emacs/29.0.50/lisp/org/ob-fortran
/home/sand/.emacs.d/elpa/org-20210913/ox-org hides /usr/share/emacs/29.0.50/lisp/org/ox-org
/home/sand/.emacs.d/elpa/org-20210913/ox-publish hides /usr/share/emacs/29.0.50/lisp/org/ox-publish
/home/sand/.emacs.d/elpa/org-20210913/ob-octave hides /usr/share/emacs/29.0.50/lisp/org/ob-octave
/home/sand/.emacs.d/elpa/org-20210913/org-refile hides /usr/share/emacs/29.0.50/lisp/org/org-refile
/home/sand/.emacs.d/elpa/org-20210913/org-macs hides /usr/share/emacs/29.0.50/lisp/org/org-macs
/home/sand/.emacs.d/elpa/org-20210913/org-plot hides /usr/share/emacs/29.0.50/lisp/org/org-plot
/home/sand/.emacs.d/elpa/org-20210913/ob-ditaa hides /usr/share/emacs/29.0.50/lisp/org/ob-ditaa
/home/sand/.emacs.d/elpa/org-20210913/org-install hides /usr/share/emacs/29.0.50/lisp/org/org-install

Features:
(shadow sort rfc1345 quail mail-extr emacsbug message yank-media rmc
puny rfc822 mml mml-sec 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 xref project pulse color files-x grep compile
cl-print thingatpt magit-base magit-section format-spec crm dash
compat-27 compat-26 compat mule-util jka-compr aggressive-indent
paredit-menu paredit edmacro misearch multi-isearch add-log vc-git
diff-mode vc vc-dispatcher bug-reference macrostep-c cmacexp macrostep
which-func imenu cap-words superword subword cedet cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
two-column kmacro amx shell pcomplete comint ansi-color dired-aux
dired-x dired dired-loaddefs shortdoc text-property-search
ido-completing-read+ memoize cus-edit pp cus-start cus-load wid-edit ido
modus-operandi-theme corfu org-install bbdb bbdb-site timezone
bbdb-autoloads emacs-env-desktop-mu4e emacs-macros emacs-common thunk
org-loaddefs icomplete image-file image-converter mb-depth minibuf-eldef
modus-themes pcase s emacs-utils library-init geiser-impl help-fns
radix-tree geiser-custom geiser-base ring comp comp-cstr warnings rx
cl-extra help-mode easy-mmode slime-autoloads info package browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars
seq gv subr-x byte-opt bytecomp byte-compile cconv cl-loaddefs cl-lib
iso-transl tooltip 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
simple cl-generic 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 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 move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 428510 26938)
 (symbols 48 23100 0)
 (strings 32 79197 7603)
 (string-bytes 1 2970873)
 (vectors 16 38001)
 (vector-slots 8 689549 19033)
 (floats 8 261 448)
 (intervals 56 13369 0)
 (buffers 992 21))

-- 
Derek Upham
derek_upham@mailfence.com





^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#55411: 29.0.50; handle_one_xevent (xterm.c) incorrectly considers button 8 as a wheel
  2022-05-14 15:28 bug#55411: 29.0.50; handle_one_xevent (xterm.c) incorrectly considers button 8 as a wheel Derek Upham
@ 2022-05-15  1:03 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 2+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-05-15  1:03 UTC (permalink / raw)
  To: Derek Upham; +Cc: 55411-done

Derek Upham <derek_upham@mailfence.com> writes:

> The handle_one_xevent function in xterm.c has code to re-interpret
> X11 button events as wheel events:
>
>     if (xev->detail >= 4 && xev->detail <= 8)
>       {
>         if (xev->evtype == XI_ButtonRelease)
>           {
>             if (xev->detail <= 5)
>               inev.ie.kind = WHEEL_EVENT;
>             else
>               inev.ie.kind = HORIZ_WHEEL_EVENT;
>
> The current logic assigns buttons 4 and 5 to WHEEL_EVENT, and buttons 6, 7,
> *and* 8 as horizontal wheel events.

Should be fixed now, thanks.  (Also thanks for proving to me that people
still use mice with more than 7 buttons.)





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-05-15  1:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-14 15:28 bug#55411: 29.0.50; handle_one_xevent (xterm.c) incorrectly considers button 8 as a wheel Derek Upham
2022-05-15  1:03 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).