From 07f3bb3ad126e48247207126b977688a77e03928 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 5 Apr 2018 17:22:39 -0400 Subject: [PATCH] Handle xwayland configure requests for unmanaged surfaces --- include/sway/tree/view.h | 1 + sway/desktop/xwayland.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index e52bee669..faf38bdf2 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -87,6 +87,7 @@ struct sway_xwayland_unmanaged { struct wlr_xwayland_surface *wlr_xwayland_surface; struct wl_list link; + struct wl_listener request_configure; struct wl_listener commit; struct wl_listener map; struct wl_listener unmap; diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 0a70b6808..3842c2c85 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -14,6 +14,16 @@ #include "sway/input/input-manager.h" #include "log.h" +static void unmanaged_handle_request_configure(struct wl_listener *listener, + void *data) { + struct sway_xwayland_unmanaged *surface = + wl_container_of(listener, surface, request_configure); + struct wlr_xwayland_surface *xsurface = surface->wlr_xwayland_surface; + struct wlr_xwayland_surface_configure_event *ev = data; + wlr_xwayland_surface_configure(xsurface, ev->x, ev->y, + ev->width, ev->height); +} + static void unmanaged_handle_commit(struct wl_listener *listener, void *data) { struct sway_xwayland_unmanaged *surface = wl_container_of(listener, surface, commit); @@ -63,6 +73,9 @@ static struct sway_xwayland_unmanaged *create_unmanaged( surface->wlr_xwayland_surface = xsurface; + wl_signal_add(&xsurface->events.request_configure, + &surface->request_configure); + surface->request_configure.notify = unmanaged_handle_request_configure; wl_signal_add(&xsurface->events.map, &surface->map); surface->map.notify = unmanaged_handle_map; wl_signal_add(&xsurface->events.unmap, &surface->unmap);