Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tablet pen proximity_out event not delivered if tablet has left surface #5230

Closed
Xyene opened this issue Apr 18, 2020 · 0 comments · Fixed by #5259
Closed

Tablet pen proximity_out event not delivered if tablet has left surface #5230

Xyene opened this issue Apr 18, 2020 · 0 comments · Fixed by #5259
Labels
bug Not working as intended input/tablet

Comments

@Xyene
Copy link
Member

Xyene commented Apr 18, 2020

With a mouse, if one does something like press down on a scrollbar and leave the window the scrollbar belongs to, and then release the mouse button, the scrollbar will be released.

If someone does the same with a tablet pen, the scrollbar is not released -- the tablet pen up event is not delivered. If the tablet pen re-enters the window while hovering, not pressed, the window remains under the impression that the pen is still down.

Running with WAYLAND_DEBUG shows that zwp_tablet_tool_v2.proximity_out is never sent if the pen left the window while the tablet pen is down. It's not sent after it's released in another window, either. The leave event is being sent, as is the eventual removed when I lift the pen.

[1517543.986] zwp_tablet_tool_v2@4278190084.proximity_in(3243, zwp_tablet_v2@4278190080, wl_surface@19)
[1520888.037] zwp_tablet_tool_v2@4278190084.proximity_in(3270, zwp_tablet_v2@4278190080, wl_surface@19)
[1521033.933] zwp_tablet_tool_v2@4278190084.proximity_out()

I've had this happen with every app I've tried (gedit, Firefox, kitty). gedit actually crashes a short while later in libwayland-client.so:wl_proxy_marshal, which I imagine is related as it doesn't happen when not trying to reproduce this issue.

I think this has to do with tablet v2 support. If the tablet is released over a surface supporting v2, the surface that is implicitly grabbed isn't notified of proximity_out. (For instance kitty does not support tablet v2, so releasing the pen over a kitty window works correctly, but releasing it over Firefox or gedit doesn't)

Xyene added a commit to Xyene/sway that referenced this issue Apr 19, 2020
If we started holding the tool tip down on a surface that accepts tablet
v2, we should notify that surface if it gets released over a surface
that doesn't support v2.

Since GTK supports tablet v2, this fixes the common case of starting a
drag over a GTK surface (e.g. scrollbar) and releasing it outside (e.g.
over the gaps between sway containers, or in a terminal).

Refs swaywm#5230.
Xyene added a commit to Xyene/sway that referenced this issue Apr 19, 2020
If we started holding the tool tip down on a surface that accepts tablet
v2, we should notify that surface if it gets released over a surface
that doesn't support v2.

Since GTK supports tablet v2, this fixes the common case of starting a
drag over a GTK surface (e.g. scrollbar) and releasing it outside (e.g.
over the gaps between sway containers, or in a terminal).

Refs swaywm#5230.
Xyene added a commit to Xyene/sway that referenced this issue Apr 19, 2020
If we started holding the tool tip down on a surface that accepts tablet
v2, we should notify that surface if it gets released over a surface
that doesn't support v2.

Since GTK supports tablet v2, this fixes the common case of starting a
drag over a GTK surface (e.g. scrollbar) and releasing it outside (e.g.
over the gaps between sway containers, or in a terminal).

Refs swaywm#5230.
emersion pushed a commit that referenced this issue Apr 22, 2020
If we started holding the tool tip down on a surface that accepts tablet
v2, we should notify that surface if it gets released over a surface
that doesn't support v2.

Since GTK supports tablet v2, this fixes the common case of starting a
drag over a GTK surface (e.g. scrollbar) and releasing it outside (e.g.
over the gaps between sway containers, or in a terminal).

Refs #5230.
Xyene added a commit to Xyene/sway that referenced this issue Apr 26, 2020
Xyene added a commit to Xyene/sway that referenced this issue Apr 26, 2020
d88460f addressed sending v2 tool tip up when over a non-v2 surface.
This commit addresses the other direction.

Fixes swaywm#5230.
Xyene added a commit to Xyene/sway that referenced this issue Apr 26, 2020
d88460f addressed sending v2 tool tip up when over a non-v2 surface.
This commit addresses the other direction.

Fixes swaywm#5230.
@Xyene Xyene added bug Not working as intended input/tablet labels Apr 29, 2020
emersion pushed a commit that referenced this issue May 1, 2020
d88460f addressed sending v2 tool tip up when over a non-v2 surface.
This commit addresses the other direction.

Fixes #5230.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Not working as intended input/tablet
Development

Successfully merging a pull request may close this issue.

1 participant