diff options
author | emersion <contact@emersion.fr> | 2017-10-05 22:23:37 +0200 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-10-05 22:23:37 +0200 |
commit | 12b9b1a4bdf00742cc510c2329c7a66c649b3ab0 (patch) | |
tree | 8835a59d4219ade6f6018558638012454c4581d2 /xwayland | |
parent | 454a6a902b7e78576fa77e77395cbd26901b18e2 (diff) |
Copy xcb_icccm structs into wlroots
Diffstat (limited to 'xwayland')
-rw-r--r-- | xwayland/xwm.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/xwayland/xwm.c b/xwayland/xwm.c index 120c1ae8..a4091d1f 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -288,12 +288,16 @@ static void read_surface_hints(struct wlr_xwm *xwm, return; } + xcb_icccm_wm_hints_t hints; + xcb_icccm_get_wm_hints_from_reply(&hints, reply); + free(surface->hints); - surface->hints = calloc(1, sizeof(xcb_icccm_wm_hints_t)); + surface->hints = calloc(1, sizeof(struct wlr_xwayland_surface_hints)); if (surface->hints == NULL) { return; } - xcb_icccm_get_wm_hints_from_reply(surface->hints, reply); + memcpy(surface->hints, &hints, sizeof(struct wlr_xwayland_surface_hints)); + surface->hints_urgency = xcb_icccm_wm_hints_get_urgency(&hints); wlr_log(L_DEBUG, "WM_HINTS (%d)", reply->value_len); } @@ -311,12 +315,17 @@ static void read_surface_normal_hints(struct wlr_xwm *xwm, return; } + xcb_size_hints_t size_hints; + xcb_icccm_get_wm_size_hints_from_reply(&size_hints, reply); + free(surface->size_hints); - surface->size_hints = calloc(1, sizeof(xcb_size_hints_t)); + surface->size_hints = + calloc(1, sizeof(struct wlr_xwayland_surface_size_hints)); if (surface->size_hints == NULL) { return; } - xcb_icccm_get_wm_size_hints_from_reply(surface->size_hints, reply); + memcpy(surface->size_hints, &size_hints, + sizeof(struct wlr_xwayland_surface_size_hints)); wlr_log(L_DEBUG, "WM_NORMAL_HINTS (%d)", reply->value_len); } |