aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/xwayland
diff options
context:
space:
mode:
authorJohn Lindgren <john@jlindgren.net>2022-11-09 16:09:43 -0500
committerJohn Lindgren <john@jlindgren.net>2023-02-13 12:57:20 -0500
commit068280201afdb8d87b1c624d115bed8866c6852e (patch)
tree62fcd3c498ecc61d63a62b737a30e5a8187f2990 /include/wlr/xwayland
parent23b7d22c6c04b4c86673d7d4bec5bf874a1f43f7 (diff)
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()
Diffstat (limited to 'include/wlr/xwayland')
-rw-r--r--include/wlr/xwayland/xwayland.h7
1 files changed, 7 insertions, 0 deletions
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 <stdbool.h>
#include <wayland-server-core.h>
#include <xcb/xcb.h>
+#include <xcb/xcb_ewmh.h>
#include <xcb/xcb_icccm.h>
#include <wlr/util/addon.h>
@@ -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;