From 12b9b1a4bdf00742cc510c2329c7a66c649b3ab0 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 5 Oct 2017 22:23:37 +0200 Subject: Copy xcb_icccm structs into wlroots --- xwayland/xwm.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'xwayland') 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); } -- cgit v1.2.3