wlroots-hyprland/types/xdg_shell_v6
Thomas Hebb dcae6f1431 Allow keyboard and pointer grabs to hook clear_focus()
This is necessary for some grabs, which currently have no way of knowing
when the pointer/keyboard focus has left a surface. For example, without
this, a drag-and-drop grab can erroneously drop into a window that the
cursor is no longer over.

This is the plumbing needed to properly fix swaywm/sway#5220. The
existing fix, swaywm/sway#5222, relies on every grab's `enter()` hook
allowing a `NULL` surface. This is not guaranteed by the API and, in
fact, is not the case for the xdg-shell popup grab and results in a
crash when the cursor leaves a surface and does not immediately enter
another one while a popup is open (#2161).

This fix also adds an assertion to wlr_seat_pointer_notify_enter() that
ensures it's never called with a `NULL` surface. This will make Sway
crash much more until it fixes its usage of the API, so we should land
this at the same time as a fix in Sway (which I haven't posted yet).
2020-06-05 17:20:26 +02:00
..
wlr_xdg_popup_v6.c Allow keyboard and pointer grabs to hook clear_focus() 2020-06-05 17:20:26 +02:00
wlr_xdg_positioner_v6.c xdg_shell: remove variable self-assignment 2019-08-12 09:37:21 +09:00
wlr_xdg_shell_v6.c Simplify globals implementation by removing destructors 2019-11-25 09:01:46 -05:00
wlr_xdg_surface_v6.c Standardize the wlr_box input paramaters 2018-12-21 13:56:10 -05:00
wlr_xdg_toplevel_v6.c wlr_xdg_toplevel_v6: store pending fullscreen output 2019-03-27 10:04:10 +02:00