After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 783716 - Support wayland-tablet wheel events
Support wayland-tablet wheel events
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: wayland
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2017-06-12 22:24 UTC by Jason Gerecke
Modified: 2017-07-20 12:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Sample mutter patch (3.30 KB, patch)
2017-06-12 22:40 UTC, Jason Gerecke
committed Details | Review
Sample GTK3 patch (2.72 KB, patch)
2017-06-12 22:45 UTC, Jason Gerecke
reviewed Details | Review
wayland: Make function to create scroll event more generic (3.28 KB, patch)
2017-07-20 12:11 UTC, Carlos Garnacho
committed Details | Review
wayland: Implement support for tablet wheel scrolling (2.51 KB, patch)
2017-07-20 12:11 UTC, Carlos Garnacho
committed Details | Review

Description Jason Gerecke 2017-06-12 22:24:22 UTC
Currently it is not possible to scroll within applications using the wheel on a tablet "puck" tool. The necessary codepaths appear to be stubbed out in both Mutter and GTK3. The puck is a somewhat niche tool, but its inability to scroll quickly becomes annoying for those users who have one.
Comment 1 Jason Gerecke 2017-06-12 22:40:15 UTC
Created attachment 353637 [details] [review]
Sample mutter patch
Comment 2 Jason Gerecke 2017-06-12 22:45:49 UTC
Created attachment 353639 [details] [review]
Sample GTK3 patch

This sample patch adds scrolling to GTK3, but it seems that not every component actually scrolls in response to the event. Dropdown lists work, but not e.g. text fields... I'm unsure if the issue is with this patch, or elsewhere in GTK.
Comment 3 Carlos Garnacho 2017-07-17 19:16:41 UTC
Comment on attachment 353637 [details] [review]
Sample mutter patch

The bits in the FIXME were what prevented the feature in the first place. I agree that the heuristic applied is sensible for the time being, and much better than leaving the event not implemented at all.
Comment 4 Carlos Garnacho 2017-07-17 19:19:26 UTC
Comment on attachment 353639 [details] [review]
Sample GTK3 patch

GDK is responsible for emitting both discrete and smooth scroll events to make the upper layers that use each happy. The patch is missing the latter, which explains the symptoms seen.

I will update this patch.
Comment 5 Carlos Garnacho 2017-07-17 19:26:09 UTC
Comment on attachment 353637 [details] [review]
Sample mutter patch

Pushed attachment 353637 [details] [review] as 4d8cb5408
Comment 6 Carlos Garnacho 2017-07-20 12:11:39 UTC
Created attachment 356026 [details] [review]
wayland: Make function to create scroll event more generic

Add GdkWaylandPointerData and GdkDevice arguments so it can be
used across master devices.
Comment 7 Carlos Garnacho 2017-07-20 12:11:46 UTC
Created attachment 356027 [details] [review]
wayland: Implement support for tablet wheel scrolling

Adds support for creating scroll events from Wayland tablet wheel events.
Even though no Wacom tablet puck has a smooth-scrolling wheel, both event
types need to be generated to make the upper layers happy.
Comment 8 Carlos Garnacho 2017-07-20 12:26:29 UTC
Attachment 356026 [details] pushed as e6863da - wayland: Make function to create scroll event more generic
Attachment 356027 [details] pushed as 32919a4 - wayland: Implement support for tablet wheel scrolling