Bug 426585 - [Wayland] Wacom tablet cursor/cross doesn't switch states properly
Summary: [Wayland] Wacom tablet cursor/cross doesn't switch states properly
Status: CONFIRMED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-16 03:32 UTC by Thiago Sueto
Modified: 2024-01-20 15:20 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thiago Sueto 2020-09-16 03:32:23 UTC
SUMMARY
From what I understand, the default cursor for tablets on Wayland+libinput are supposed to be a cross or +. 
The cursor seems to change to other states (such as noaml, text and hyperlink (hand) cursor depending on the application.

* XWayland apps (WPS Office, Auryo and Kontact) always show the same cursor, either normal or text (as far as I've tested)
* Firefox alternates between text cursor, normal cursor and hyperlink cursor

STEPS TO REPRODUCE
1. Open Firefox and open a webpage with several different elements (my setup has it running native Wayland with Webrender)
2. Run QT_QPA_PLATFORM=xcb application to open another app (literally any)
3. Move cursor around Firefox, notice how cursor changes a lot
4. Move cursor around XWayland app, it's always at a generic mouse state, no matter which one

OBSERVED RESULT
Cursor changes according to app.

EXPECTED RESULT
Cursor should either always stay the same (+) or change properly according to context (text cursor on text field, hyperlink cursor on hyperlinks, etc).

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20200823 (build from 2020-09-14)
KDE Plasma Version: 5.19.80
KDE Frameworks Version: 5.75.0
Qt Version: 5.15.1
Kernel Version: 5.8.0-1-default
OS Type: 64-bit
Processors: 4 × Intel® Core™ i5-7200U CPU @ 2.50GHz
Memory: 15.5 GiB of RAM
Graphics Processor: Mesa DRI Intel® HD Graphics 620

ADDITIONAL INFORMATION
Wacom Tablet: Intuos CTL480 Pen Small
Properly recognized via libinput list-devices

Device:           Wacom Intuos S Pad
Kernel:           /dev/input/event2
Group:            6
Seat:             seat0, default
Capabilities:     tablet-pad
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Wacom Intuos S Pen
Kernel:           /dev/input/event1
Group:            6
Seat:             seat0, default
Size:             152x95mm
Capabilities:     tablet 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   none
Rotation:         n/a
Comment 1 Zamundaaa 2020-11-20 02:31:03 UTC
Am I misunderstanding what you're saying or is the complaint that XWayland apps don't change the cursor?
Comment 2 Thiago Sueto 2020-12-23 00:17:35 UTC
Hello, sorry for taking so long to respond.
I have a bad tendency of overanalyzing/overwriting. Yes, XWayland apps don't change the cursor of the drawing tablet.

Check for instance running Dolphin on X11 and running Dolphin on XWayland (with QT_QPA_PLATFORM=xcb). Hovering the cursor over the path changes it to a text cursor on X11, on XWayland it doesn't change, that is, a plus + is shown.

(That thing I wrote before: "it's always at a generic mouse state, no matter which one" is referring to a different issue that I'll record later. While a Wayland app always displays a + instead of a normal cursor, XWayland apps might mistakenly show the last cursor state instead — and not change to anything else, as mentioned above. So if it enters the XWayland app window as a text cursor, it consistently stays a text cursor.

A way to test this "XWayland apps show anything other than a +" is to hover the mouse over Firefox webpage elements like hyperlinks or text fields) and then quickly hover to the XWayland app. It's not always reproducible, but it's how I found out about this bug.)
Comment 3 Zamundaaa 2021-01-16 14:03:41 UTC
Hmm, that sounds like it could be an XWayland bug. Weirdly enough for me I don't get the + at all (anymore), it's always the normal cursor.
Comment 4 Daljit 2022-08-20 13:48:03 UTC
I've noticed this bug too and it seems to affect KDE Wayland only. My guess is that this is a bug in Qt, GTK applications (e.g. Firefox) can correctly change their cursor contextually (e.g. when hovering over text fields), while Qt applications aren't ablet to do that. In fact, when using a tablet if you use any Qt application (e.g. Dolphin or Settings), the application always retain the "+" cursor no matter what. To reproduce an example of this behaviour, you can try to use KDE under Wayland, then open the Settings app and then hover the search text field and you'll see that the cursor is not changing. Note that this works as expected with a mouse and the problem only occurs when using a stylus.

Investigating further, I created a simple Qt application that calls [`QGuiApplication::setOverrideCursor`](https://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor) periodically but this has no effect on the cursor of the app under Wayland (it works as expected on X11).
Comment 5 Nicolas Fella 2024-01-20 15:20:53 UTC
There's a few different issues here:

- Wayland-native Qt applications only having a crosshair cursor is https://bugreports.qt.io/browse/QTBUG-105843
- XWayland windows having broken cursor shapes: https://bugs.kde.org/show_bug.cgi?id=480096
- Other toolkits may have their own bugs

See https://bugs.kde.org/show_bug.cgi?id=479706