mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 02:40:11 +00:00
gdk/wayland: Clean up gestures if pointer capability is withdrawn
If the pointer capability is added, pointer swipe and pinch gestures will be created. However, if the pointer capability is removed, the gesture objects won't be destroyed. If the pointer capability is removed and added several times in a row, for example due to plugging and unplugging physical mouse, this can lead to leaking the old gesture objects. In order to prevent that, this change makes the seat destroy swipe and pinch gestures when the pointer capability is withdrawn.
This commit is contained in:
parent
bcc7028640
commit
2c023cdaed
@ -3093,6 +3093,11 @@ seat_handle_capabilities (void *data,
|
||||
}
|
||||
else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && seat->wl_pointer)
|
||||
{
|
||||
g_clear_pointer (&seat->wp_pointer_gesture_swipe,
|
||||
zwp_pointer_gesture_swipe_v1_destroy);
|
||||
g_clear_pointer (&seat->wp_pointer_gesture_pinch,
|
||||
zwp_pointer_gesture_pinch_v1_destroy);
|
||||
|
||||
wl_pointer_release (seat->wl_pointer);
|
||||
seat->wl_pointer = NULL;
|
||||
gdk_seat_device_removed (GDK_SEAT (seat), seat->pointer);
|
||||
|
Loading…
Reference in New Issue
Block a user