aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moreau <oreaus@gmail.com>2019-10-08 10:23:10 -0600
committerSimon Ser <contact@emersion.fr>2019-10-08 19:46:06 +0300
commit3b4824a2fe933a829b9710da069f8e067cf7e1a5 (patch)
treecb9b98d7c5b30a79414ae1b11de4f6592c17d75a
parent9796abccedef881e99d293a2658c4da9466acd88 (diff)
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.
-rw-r--r--include/wlr/xwayland.h1
-rw-r--r--xwayland/xwm.c1
2 files changed, 2 insertions, 0 deletions
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);