wlroots/include
John Lindgren 5083efe18b xwayland: add wlr_xwayland_surface_offer_focus()
In labwc, we have had trouble with XWayland windows using the Globally
Active input model (see wlr_xwayland_icccm_input_model()). Under
traditional X11, these windows do not expect to be given focus directly
by the window manager; rather, the WM sends them a WM_TAKE_FOCUS message
prompting the client to take focus voluntarily.

Currently, these clients are difficult to support with wlroots, because
wlr_xwayland_surface_activate() assumes the client window will always
accept the keyboard focus after being sent WM_TAKE_FOCUS. Some Globally
Active client windows (e.g. panels/toolbars) don't want to be focused.
It's useless at best to focus them, and might even make them misbehave.
Others do need keyboard focus to be functional -- and there doesn't seem
to be any reliable way to know this in advance.

Adding wlr_xwayland_surface_offer_focus() allows the compositor to send
WM_TAKE_FOCUS to a client window supporting it and then see whether the
client accepts or ignores the offer. If it accepts, the surface will emit
the focus_in signal notifying the compositor that it has received focus.

This is entirely opt-in. A compositor that doesn't want to use the new
function can continue to call wlr_xwayland_surface_activate() directly
just as before.
2024-08-01 13:19:24 +00:00
..
backend backend/drm: add support for SIZE_HINTS property 2024-07-10 22:42:44 +00:00
interfaces types/wlr_input_device: move init and finish function to private API 2022-03-07 16:37:41 +00:00
render Fix __VA_OPT__ macro invocations 2024-06-30 09:01:15 +03:00
types Switch to stable tablet-v2 protocol 2024-06-27 18:04:00 +00:00
util xdg-toplevel: check that title provided actually is UTF-8 2023-11-22 22:03:00 +03:00
wlr xwayland: add wlr_xwayland_surface_offer_focus() 2024-08-01 13:19:24 +00:00
xcursor Add some missing includes/declarations 2023-06-05 21:06:19 +00:00
xwayland xwayland: add wlr_xwayland_surface_offer_focus() 2024-08-01 13:19:24 +00:00
meson.build render/color: add fallback stub when LCMS2 is disabled 2024-06-04 17:45:51 +00:00