mirror of
https://github.com/brl/mutter.git
synced 2025-01-26 19:39:20 +00:00
clutter: Also pick on BUTTON_PRESS events
In an x11 session, we don't receive motion events from X when the pointer is above a window. Since commit 734a1859 we only do picking on motion events though, which means when clicking the mouse to focus a window, we don't repick and might still think the pointer is hovering above another window or actor, ending up not focussing the window. Fix this by always repicking on BUTTON_PRESS events. While this is not necessary in the wayland session, button presses happen rarely compared to motion events, so it's not a performance regression to do it in Wayland sessions, too. Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1660 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1752>
This commit is contained in:
parent
c6935ad5b7
commit
4d54c3c556
@ -1701,7 +1701,12 @@ _clutter_process_event_details (ClutterActor *stage,
|
||||
break;
|
||||
}
|
||||
|
||||
if (event->type == CLUTTER_MOTION)
|
||||
/* We need to repick on both motion and button press events, the
|
||||
* latter is only needed for X11 (there the device actor might be
|
||||
* stale because we don't always receive motion events).
|
||||
*/
|
||||
if (event->type == CLUTTER_BUTTON_PRESS ||
|
||||
event->type == CLUTTER_MOTION)
|
||||
{
|
||||
event->any.source =
|
||||
update_device_for_event (CLUTTER_STAGE (stage), event, TRUE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user