mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-05 10:20:10 +01:00
xwayland: Clear tablet cursor pending frame cb
If the tablet tool is moved out of proximity before the cursor's pending
frame callback is received, any further attempts to update the cursor
will fail because the frame callback is still pending.
Make sure to clear any cursor pending frame when the tool gets in
proximity again, similar to what we do when the pointer re-enters a
surface, so that the cursor updates aren't discarded.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
See-also: https://gitlab.gnome.org/GNOME/mutter/-/issues/1969
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
(cherry picked from commit 35c5664fd4)
This commit is contained in:
parent
21e3dc3b5a
commit
b7b2c34068
1 changed files with 7 additions and 0 deletions
|
|
@ -1677,6 +1677,13 @@ tablet_tool_proximity_in(void *data, struct zwp_tablet_tool_v2 *tool,
|
|||
xwl_tablet_tool->proximity_in_serial = serial;
|
||||
xwl_seat->tablet_focus_window = wl_surface_get_user_data(wl_surface);
|
||||
|
||||
/* If there is a cursor surface frame callback pending, we need to clear it
|
||||
* so that we can continue submitting new cursor frames.
|
||||
*/
|
||||
if (xwl_tablet_tool->cursor.frame_cb) {
|
||||
wl_callback_destroy(xwl_tablet_tool->cursor.frame_cb);
|
||||
xwl_tablet_tool->cursor.frame_cb = NULL;
|
||||
}
|
||||
xwl_tablet_tool_set_cursor(xwl_tablet_tool);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue