diff options
author | Ilia Bozhinov <ammen99@gmail.com> | 2020-11-27 14:16:23 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-11-30 11:29:28 +0100 |
commit | d2329ac07a45c4c3b45c68e24f39456bfc2822fd (patch) | |
tree | 090a1faedbdb54c6d44c01da55a6740316e3126b /xwayland | |
parent | 83a5d03bf361ab9ffa29fb2b809a8e81c4a75d0f (diff) | |
download | wlroots-d2329ac07a45c4c3b45c68e24f39456bfc2822fd.tar.xz |
xwm: add wlr_xwayland_surface_restack()
Diffstat (limited to 'xwayland')
-rw-r--r-- | xwayland/xwm.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/xwayland/xwm.c b/xwayland/xwm.c index fefba7fc..f258ab00 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -1548,6 +1548,23 @@ void wlr_xwayland_surface_activate(struct wlr_xwayland_surface *xsurface, } } +void wlr_xwayland_surface_restack(struct wlr_xwayland_surface *surface, + struct wlr_xwayland_surface *sibling, enum xcb_stack_mode_t mode) { + struct wlr_xwm *xwm = surface->xwm; + uint32_t values[2]; + size_t idx = 0; + uint32_t flags = XCB_CONFIG_WINDOW_STACK_MODE; + + if (sibling != NULL) { + values[idx++] = sibling->window_id; + flags |= XCB_CONFIG_WINDOW_SIBLING; + } + values[idx++] = mode; + + xcb_configure_window(xwm->xcb_conn, surface->window_id, flags, values); + xcb_flush(xwm->xcb_conn); +} + void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, int16_t x, int16_t y, uint16_t width, uint16_t height) { xsurface->x = x; |