Browse Source

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.
Riteo 1 year ago
parent
commit
343ea9c6f7
1 changed files with 2 additions and 0 deletions
  1. 2 0
      platform/linuxbsd/wayland/wayland_thread.cpp

+ 2 - 0
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->pointed_surface = nullptr;
 
 
+	ss->pointer_data_buffer.pressed_button_mask.clear();
+
 	Ref<WindowEventMessage> msg;
 	Ref<WindowEventMessage> msg;
 	msg.instantiate();
 	msg.instantiate();
 	msg->event = DisplayServer::WINDOW_EVENT_MOUSE_EXIT;
 	msg->event = DisplayServer::WINDOW_EVENT_MOUSE_EXIT;