emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#68050: closed (29.1; Pixel scroll doesn't work on platforms that do


From: GNU bug Tracking System
Subject: bug#68050: closed (29.1; Pixel scroll doesn't work on platforms that do not expose device-class.)
Date: Wed, 27 Dec 2023 01:27:01 +0000

Your message dated Wed, 27 Dec 2023 09:25:49 +0800
with message-id <s0dbkacphb6.fsf@yahoo.com>
and subject line Re: bug#68050: 29.1; Pixel scroll doesn't work on platforms 
that do not expose device-class.
has caused the debbugs.gnu.org bug report #68050,
regarding 29.1; Pixel scroll doesn't work on platforms that do not expose 
device-class.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
68050: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68050
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 29.1; Pixel scroll doesn't work on platforms that do not expose device-class. Date: Tue, 26 Dec 2023 13:01:30 -0800
Pixel scroll does not work on many platforms, such as Windows and Mac as
they only expose device classes core-keyboard and core-pointer.
Additionally, I have found that for Wayland under WSL on the emacs-29
branch, both the touchpad and the mouse are reported with device-class
'mouse on my Thinkpad laptop.

The attached patch enables a user to specify arbitrary device classes
that should cause interpolated scrolling so they can fix any issues.
This enables a user to customize this to the behavior of their local
machine.

I am undecided if this should involve renaming the existing
pixel-scroll-precision-interpolate-mice option or if it is important to
stay backward compatible with customizations that changed that option
from its default, t, to some other non-nil value.  Please give feedback
here.

Otherwise, this is a straightforward change that I think would be good
for the Emacs 29 branch so all platforms can get the smoothness of
interpolated pixel scrolling.

In GNU Emacs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.37,
 cairo version 1.16.0) of 2023-09-11, modified by Debian built on melete
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/libexec
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils
 --with-native-compilation --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/libexec
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils
 --with-native-compilation --with-pgtk 'CFLAGS=-g -O2
-ffile-prefix-map=/build/emacs-N816CI/emacs-29.1+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX 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: Fundamental

Minor modes in effect:
  global-window-tool-bar-mode: t
  pixel-scroll-precision-mode: t
  recentf-mode: t
  global-subword-mode: t
  global-form-feed-st-mode: t
  icomplete-mode: t
  fido-mode: t
  electric-pair-mode: t
  delete-selection-mode: t
  cua-mode: t
  bar-cursor-mode: t
  url-handler-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
  context-menu-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  window-divider-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-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 cursor-sensor emacsbug finder-inf comp comp-cstr
cl-extra help-mode markdown-mode rx color thingatpt noutline outline
cus-edit pp cus-start cus-load window-tool-bar easy-mmode time-stamp
tab-line pixel-scroll recentf tree-widget wid-edit cap-words superword
subword form-feed-st icomplete elec-pair delsel cua-base bar-cursor
ls-lisp advice 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 warnings icons compile
text-property-search comint ansi-osc ansi-color ring init-dir
bar-cursor-autoloads dired-icon-autoloads form-feed-st-autoloads
init-dir-autoloads markdown-mode-autoloads modus-themes-autoloads
package-lint-autoloads compat-autoloads info slime-autoloads
window-tool-bar-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 password-cache json map byte-opt bytecomp byte-compile
url-vars modus-vivendi-theme modus-themes cl-macs pcase subr-x
cl-loaddefs cl-lib gv 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 539696 29472)
 (symbols 48 22620 0)
 (strings 32 141326 2762)
 (string-bytes 1 3451370)
 (vectors 16 35478)
 (vector-slots 8 662830 21925)
 (floats 8 236 225)
 (intervals 56 505 10)
 (buffers 984 14))

Attachment: 0001-Allow-interpolation-with-arbitrary-device-classes.patch
Description: Text Data


--- End Message ---
--- Begin Message --- Subject: Re: bug#68050: 29.1; Pixel scroll doesn't work on platforms that do not expose device-class. Date: Wed, 27 Dec 2023 09:25:49 +0800 User-agent: Gnus/5.13 (Gnus v5.13)
Jared Finder <jared@finder.org> writes:

> Pixel scroll does not work on many platforms, such as Windows and Mac as
> they only expose device classes core-keyboard and core-pointer.
> Additionally, I have found that for Wayland under WSL on the emacs-29
> branch, both the touchpad and the mouse are reported with device-class
> 'mouse on my Thinkpad laptop.

Incidentally we don't support WSL, as circumventing their bugs for a
proprietary platform which Emacs already supports through the Cygwin and
native Windows builds is an unjustified burden.

> The attached patch enables a user to specify arbitrary device classes
> that should cause interpolated scrolling so they can fix any issues.
> This enables a user to customize this to the behavior of their local
> machine.
>
> I am undecided if this should involve renaming the existing
> pixel-scroll-precision-interpolate-mice option or if it is important to
> stay backward compatible with customizations that changed that option
> from its default, t, to some other non-nil value.  Please give feedback
> here.
>
> Otherwise, this is a straightforward change that I think would be good
> for the Emacs 29 branch so all platforms can get the smoothness of
> interpolated pixel scrolling.

pixel-scroll-precision-mode is first and foremost designed for devices
such as touchpads, for which interpolation is unnecessary as detailed
scrolling deltas are always reported within events they generate.

Interpolation for wheel mice is an afterthought, so to speak, and if the
code responsible for interfacing with the window system cannot detect
wheel mice by itself, then the option
pixel-scroll-precision-large-scroll-height might be set to a value
suitable for wheel mice to be distinguished from touchpads and for
interpolation to be applied to them.

When a predicated fallback mechanism is already in place, there's no
need for one that's far more coarse.  Furthermore, p-s-p-l-s-h can be
set to 0, which would be identical to setting this variable to t.

Thanks, but this isn't necessary.  Closing.



--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]