GNU bug report logs -
#68050
29.1; Pixel scroll doesn't work on platforms that do not expose device-class.
Previous Next
Reported by: Jared Finder <jared <at> finder.org>
Date: Tue, 26 Dec 2023 21:02:01 UTC
Severity: normal
Found in version 29.1
Done: Po Lu <luangruo <at> yahoo.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68050 in the body.
You can then email your comments to 68050 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68050
; Package
emacs
.
(Tue, 26 Dec 2023 21:02:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Jared Finder <jared <at> finder.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 26 Dec 2023 21:02:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
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))
[0001-Allow-interpolation-with-arbitrary-device-classes.patch (text/x-diff, attachment)]
Reply sent
to
Po Lu <luangruo <at> yahoo.com>
:
You have taken responsibility.
(Wed, 27 Dec 2023 01:27:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Jared Finder <jared <at> finder.org>
:
bug acknowledged by developer.
(Wed, 27 Dec 2023 01:27:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 68050-done <at> debbugs.gnu.org (full text, mbox):
Jared Finder <jared <at> 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.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68050
; Package
emacs
.
(Wed, 27 Dec 2023 01:33:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 68050-done <at> debbugs.gnu.org (full text, mbox):
On 2023-12-26 17:25, Po Lu wrote:
> Jared Finder <jared <at> 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.
Understood. However, I see the same issue on pure Windows and on Mac as
well.
>> 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.
I'm a bit confused by the "this isn't necessary" response. What should
I be doing on Mac or on Windows, where Emacs doesn't distinguish between
touchpads and mice currently? Is there a fix in the works for these
OSes?
-- MJF
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68050
; Package
emacs
.
(Wed, 27 Dec 2023 02:04:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 68050 <at> debbugs.gnu.org (full text, mbox):
Jared Finder <jared <at> finder.org> writes:
> I'm a bit confused by the "this isn't necessary" response. What
> should I be doing on Mac or on Windows, where Emacs doesn't
> distinguish between touchpads and mice currently? Is there a fix in
> the works for these OSes?
As I said, set pixel-scroll-precision-large-scroll-height to a value
such that events sent by mice are classified as such and interpolated,
or 0, which will direct Emacs to apply interpolation to all scroll
events.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68050
; Package
emacs
.
(Wed, 27 Dec 2023 02:04:03 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68050
; Package
emacs
.
(Thu, 28 Dec 2023 01:14:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 68050 <at> debbugs.gnu.org (full text, mbox):
On 2023-12-26 18:03, Po Lu wrote:
> Jared Finder <jared <at> finder.org> writes:
>
>> I'm a bit confused by the "this isn't necessary" response. What
>> should I be doing on Mac or on Windows, where Emacs doesn't
>> distinguish between touchpads and mice currently? Is there a fix in
>> the works for these OSes?
>
> As I said, set pixel-scroll-precision-large-scroll-height to a value
> such that events sent by mice are classified as such and interpolated,
> or 0, which will direct Emacs to apply interpolation to all scroll
> events.
Thank you so much! This works as a replacement of my original patch.
-- MJF
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68050
; Package
emacs
.
(Thu, 28 Dec 2023 01:14:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 25 Jan 2024 12:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 239 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.