From 3b4824a2fe933a829b9710da069f8e067cf7e1a5 Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Tue, 8 Oct 2019 10:23:10 -0600 Subject: [PATCH] xwayland: Expose configure request mask Without this information, compositors have no way to tell whether or not to consider the position information valid. Most notably, a compositor needs to know if it should pick a position for the surface or use the position sent in the configure request. --- include/wlr/xwayland.h | 1 + xwayland/xwm.c | 1 + 2 files changed, 2 insertions(+) diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h index e2c8d81b..8646e7ac 100644 --- a/include/wlr/xwayland.h +++ b/include/wlr/xwayland.h @@ -179,6 +179,7 @@ struct wlr_xwayland_surface_configure_event { struct wlr_xwayland_surface *surface; int16_t x, y; uint16_t width, height; + uint16_t mask; // xcb_config_window_t }; // TODO: maybe add a seat to these diff --git a/xwayland/xwm.c b/xwayland/xwm.c index fba098d1..c35a9abc 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -871,6 +871,7 @@ static void xwm_handle_configure_request(struct wlr_xwm *xwm, .y = mask & XCB_CONFIG_WINDOW_Y ? ev->y : surface->y, .width = mask & XCB_CONFIG_WINDOW_WIDTH ? ev->width : surface->width, .height = mask & XCB_CONFIG_WINDOW_HEIGHT ? ev->height : surface->height, + .mask = mask, }; wlr_log(WLR_DEBUG, "XCB_CONFIGURE_REQUEST (%u) [%ux%u+%d,%d]", ev->window, wlr_event.width, wlr_event.height, wlr_event.x, wlr_event.y);