From 5b1601c2e32b43cbb253fcd396ab9096f51b7e6c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 26 May 2018 21:33:18 +1000 Subject: Don't let xwayland views set position unless unmanaged --- include/sway/tree/view.h | 1 + sway/desktop/xwayland.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 65a23902..5c2f759c 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -137,6 +137,7 @@ struct sway_xwayland_view { struct wl_listener unmap; struct wl_listener destroy; + int pending_lx, pending_ly; int pending_width, pending_height; }; diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index fc488162..f3264ddc 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -160,6 +160,8 @@ static void configure(struct sway_view *view, double lx, double ly, int width, } struct wlr_xwayland_surface *xsurface = view->wlr_xwayland_surface; + xwayland_view->pending_lx = lx; + xwayland_view->pending_ly = ly; xwayland_view->pending_width = width; xwayland_view->pending_height = height; wlr_xwayland_surface_configure(xsurface, lx, ly, width, height); @@ -264,7 +266,8 @@ static void handle_commit(struct wl_listener *listener, void *data) { } if (view->swayc && container_is_floating(view->swayc)) { view_update_size(view, xsurface->width, xsurface->height); - view_update_position(view, xsurface->x, xsurface->y); + view_update_position(view, + xwayland_view->pending_lx, xwayland_view->pending_ly); } else { view_update_size(view, xwayland_view->pending_width, xwayland_view->pending_height); -- cgit v1.2.3-54-g00ecf