diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-09-30 10:47:04 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-30 10:47:04 -0400 |
commit | 5944505af66a8cc1c23158541d4d533a0d693b9d (patch) | |
tree | 616dcba96739351b6ca7737bda9a526d74009ce1 /rootston/xwayland.c | |
parent | 40303b7a09e52bffbef1ea9cb8120da85c7d185c (diff) | |
parent | 7f5d0624d666ee2af7d607a44105cb15c44e8481 (diff) |
Merge pull request #177 from emersion/xwayland-resize
rootston: add view->resize for xwayland
Diffstat (limited to 'rootston/xwayland.c')
-rw-r--r-- | rootston/xwayland.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/rootston/xwayland.c b/rootston/xwayland.c index 4e42a925..7ecc4d4f 100644 --- a/rootston/xwayland.c +++ b/rootston/xwayland.c @@ -9,6 +9,13 @@ #include "rootston/desktop.h" #include "rootston/server.h" +static void resize(struct roots_view *view, uint32_t width, uint32_t height) { + assert(view->type == ROOTS_XWAYLAND_VIEW); + struct wlr_xwayland_surface *xwayland_surface = view->xwayland_surface; + wlr_xwayland_surface_configure(view->desktop->xwayland, xwayland_surface, + xwayland_surface->x, xwayland_surface->y, width, height); +} + static void handle_destroy(struct wl_listener *listener, void *data) { struct roots_xwayland_surface *roots_surface = wl_container_of(listener, roots_surface, destroy); @@ -24,16 +31,11 @@ static void handle_request_configure(struct wl_listener *listener, void *data) { roots_surface->view->xwayland_surface; struct wlr_xwayland_surface_configure_event *event = data; - xwayland_surface->x = event->x; - xwayland_surface->y = event->y; - xwayland_surface->width = event->width; - xwayland_surface->height = event->height; - roots_surface->view->x = (double)event->x; roots_surface->view->y = (double)event->y; wlr_xwayland_surface_configure(roots_surface->view->desktop->xwayland, - xwayland_surface); + xwayland_surface, event->x, event->y, event->width, event->height); } static void activate(struct roots_view *view, bool active) { @@ -75,6 +77,7 @@ void handle_xwayland_surface(struct wl_listener *listener, void *data) { view->wlr_surface = surface->surface; view->desktop = desktop; view->activate = activate; + view->resize = resize; roots_surface->view = view; list_add(desktop->views, view); } |