From a54fea40ef83cac377ef8d38a067a4b0f6922b73 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Mon, 20 Aug 2018 10:40:58 +0200 Subject: [PATCH] event_handle_configurerequest: Add missing test c->size_hints.win_gravity only contains something valid if the XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY bit is set in the flags. Most likely this wasn't noticed before, because most code just happens to zero-initialize this field and gravity 0 is NorthWest, which does not do anything. Signed-off-by: Uli Schlachter --- event.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/event.c b/event.c index b6a1977b8..e264d8862 100644 --- a/event.c +++ b/event.c @@ -374,12 +374,14 @@ event_handle_configurerequest(xcb_configure_request_event_t *ev) if(ev->value_mask & XCB_CONFIG_WINDOW_X) { geometry.x = ev->x; - xwindow_translate_for_gravity(c->size_hints.win_gravity, deco_left, 0, deco_right, 0, &geometry.x, NULL); + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY) + xwindow_translate_for_gravity(c->size_hints.win_gravity, deco_left, 0, deco_right, 0, &geometry.x, NULL); } if(ev->value_mask & XCB_CONFIG_WINDOW_Y) { geometry.y = ev->y; - xwindow_translate_for_gravity(c->size_hints.win_gravity, 0, deco_top, 0, deco_bottom, NULL, &geometry.y); + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY) + xwindow_translate_for_gravity(c->size_hints.win_gravity, 0, deco_top, 0, deco_bottom, NULL, &geometry.y); } c->got_configure_request = true;