aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/xwayland.h2
-rw-r--r--xwayland/xwm.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index 3525ff3b..dc9798b2 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -53,6 +53,8 @@ struct wlr_xwayland_surface {
xcb_atom_t *protocols;
size_t protocols_len;
+ uint32_t motif_hints[5];
+
struct {
struct wl_signal destroy;
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index 7030442b..f97f0a8e 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -286,7 +286,13 @@ static void read_surface_normal_hints(struct wlr_xwm *xwm,
static void read_surface_motif_hints(struct wlr_xwm *xwm,
struct wlr_xwayland_surface *surface, xcb_get_property_reply_t *reply) {
- // TODO
+ if (reply->value_len < 5) {
+ return;
+ }
+
+ uint32_t *motif_hints = xcb_get_property_value(reply);
+ memcpy(surface->motif_hints, motif_hints, sizeof(surface->motif_hints));
+
wlr_log(L_DEBUG, "MOTIF_WM_HINTS (%d)", reply->value_len);
}