diff options
Diffstat (limited to 'sway/desktop/xwayland.c')
-rw-r--r-- | sway/desktop/xwayland.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 0a70b680..3842c2c8 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c | |||
@@ -14,6 +14,16 @@ | |||
14 | #include "sway/input/input-manager.h" | 14 | #include "sway/input/input-manager.h" |
15 | #include "log.h" | 15 | #include "log.h" |
16 | 16 | ||
17 | static void unmanaged_handle_request_configure(struct wl_listener *listener, | ||
18 | void *data) { | ||
19 | struct sway_xwayland_unmanaged *surface = | ||
20 | wl_container_of(listener, surface, request_configure); | ||
21 | struct wlr_xwayland_surface *xsurface = surface->wlr_xwayland_surface; | ||
22 | struct wlr_xwayland_surface_configure_event *ev = data; | ||
23 | wlr_xwayland_surface_configure(xsurface, ev->x, ev->y, | ||
24 | ev->width, ev->height); | ||
25 | } | ||
26 | |||
17 | static void unmanaged_handle_commit(struct wl_listener *listener, void *data) { | 27 | static void unmanaged_handle_commit(struct wl_listener *listener, void *data) { |
18 | struct sway_xwayland_unmanaged *surface = | 28 | struct sway_xwayland_unmanaged *surface = |
19 | wl_container_of(listener, surface, commit); | 29 | wl_container_of(listener, surface, commit); |
@@ -63,6 +73,9 @@ static struct sway_xwayland_unmanaged *create_unmanaged( | |||
63 | 73 | ||
64 | surface->wlr_xwayland_surface = xsurface; | 74 | surface->wlr_xwayland_surface = xsurface; |
65 | 75 | ||
76 | wl_signal_add(&xsurface->events.request_configure, | ||
77 | &surface->request_configure); | ||
78 | surface->request_configure.notify = unmanaged_handle_request_configure; | ||
66 | wl_signal_add(&xsurface->events.map, &surface->map); | 79 | wl_signal_add(&xsurface->events.map, &surface->map); |
67 | surface->map.notify = unmanaged_handle_map; | 80 | surface->map.notify = unmanaged_handle_map; |
68 | wl_signal_add(&xsurface->events.unmap, &surface->unmap); | 81 | wl_signal_add(&xsurface->events.unmap, &surface->unmap); |