From 343ea9c6f79b5d3087cbe5558e1de30c3858778e Mon Sep 17 00:00:00 2001 From: Riteo Date: Tue, 10 Sep 2024 20:48:52 +0200 Subject: [PATCH] Wayland: clear button mask on pointer leave While experimenting with the recent "extent to title" PR, I noticed that it's not guaranteed for a "button released" event to be emitted when the pointer leaves the main surface, leaving some buttons stuck. Not doing this for tablets since the spec makes this behavior clear and explicit, so we (hopefully) shouldn't have this issue there. --- platform/linuxbsd/wayland/wayland_thread.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform/linuxbsd/wayland/wayland_thread.cpp b/platform/linuxbsd/wayland/wayland_thread.cpp index 66be313ff6c..08b20c5b426 100644 --- a/platform/linuxbsd/wayland/wayland_thread.cpp +++ b/platform/linuxbsd/wayland/wayland_thread.cpp @@ -1395,6 +1395,8 @@ void WaylandThread::_wl_pointer_on_leave(void *data, struct wl_pointer *wl_point ss->pointed_surface = nullptr; + ss->pointer_data_buffer.pressed_button_mask.clear(); + Ref msg; msg.instantiate(); msg->event = DisplayServer::WINDOW_EVENT_MOUSE_EXIT;