From 068280201afdb8d87b1c624d115bed8866c6852e Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Wed, 9 Nov 2022 16:09:43 -0500 Subject: xwayland: Read and publish _NET_WM_STRUT_PARTIAL property This is needed for compositors that want to reserve space for XWayland panels. Such a feature can be useful in a "transitional" setup, where only the X11 window manager and compositor is replaced but other components of an X11 desktop environment are still used. This change simply reads the X11 property; the compositor is free to ignore it. Thus, compositors that don't want to support such a "transitional" feature are not impacted. v2: Update xwayland_surface_associate() --- include/wlr/xwayland/xwayland.h | 7 +++++++ include/xwayland/xwm.h | 1 + 2 files changed, 8 insertions(+) (limited to 'include') diff --git a/include/wlr/xwayland/xwayland.h b/include/wlr/xwayland/xwayland.h index 63e64f36..c1dbc339 100644 --- a/include/wlr/xwayland/xwayland.h +++ b/include/wlr/xwayland/xwayland.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -121,6 +122,11 @@ struct wlr_xwayland_surface { uint32_t decorations; xcb_icccm_wm_hints_t *hints; xcb_size_hints_t *size_hints; + /* + * _NET_WM_STRUT_PARTIAL (used by e.g. XWayland panels; + * right/bottom are translated into root x/y coordinates) + */ + xcb_ewmh_wm_strut_partial_t *strut_partial; bool pinging; struct wl_event_source *ping_timer; @@ -154,6 +160,7 @@ struct wlr_xwayland_surface { struct wl_signal set_window_type; struct wl_signal set_hints; struct wl_signal set_decorations; + struct wl_signal set_strut_partial; struct wl_signal set_override_redirect; struct wl_signal set_geometry; struct wl_signal ping_timeout; diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h index c057e1b7..c69504e8 100644 --- a/include/xwayland/xwm.h +++ b/include/xwayland/xwm.h @@ -34,6 +34,7 @@ enum atom_name { NET_WM_PID, NET_WM_NAME, NET_WM_STATE, + NET_WM_STRUT_PARTIAL, NET_WM_WINDOW_TYPE, WM_TAKE_FOCUS, WINDOW, -- cgit v1.2.3