diff options
author | Alexander Orzechowski <orzechowski.alexander@gmail.com> | 2022-03-01 00:48:22 -0500 |
---|---|---|
committer | Kirill Primak <vyivel@eclair.cafe> | 2024-01-18 18:36:54 +0300 |
commit | ed2724bd6c83ad3fdc2010b3a1e2f5967f0e8b38 (patch) | |
tree | 465419aefe089bd4396f6f48eb00f571109c89e0 | |
parent | 6e5fc4c2aafd211323c6037aa868c075852bfe15 (diff) |
xwayland: Cleanup geometry handling on commit
Instead of doing this roundabout thing where we get the surface from the
view, let's instead get it from the `wlr_surface_state` that we already
track in `handle_commit`. This makes the NULL state impossible which is
what the old `get_geometry` is checking for and generally cleans
things up a little bit.
Also don't check if the geometry x/y changed, those will always
be 0 for xwayland.
-rw-r--r-- | sway/desktop/xwayland.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 183bdba2..0967c7fc 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -414,17 +414,6 @@ static const struct sway_view_impl view_impl = { .destroy = destroy, }; -static void get_geometry(struct sway_view *view, struct wlr_box *box) { - box->x = box->y = 0; - if (view->surface) { - box->width = view->surface->current.width; - box->height = view->surface->current.height; - } else { - box->width = 0; - box->height = 0; - } -} - static void handle_commit(struct wl_listener *listener, void *data) { struct sway_xwayland_view *xwayland_view = wl_container_of(listener, xwayland_view, commit); @@ -432,12 +421,12 @@ static void handle_commit(struct wl_listener *listener, void *data) { struct wlr_xwayland_surface *xsurface = view->wlr_xwayland_surface; struct wlr_surface_state *state = &xsurface->surface->current; - struct wlr_box new_geo; - get_geometry(view, &new_geo); + struct wlr_box new_geo = {0}; + new_geo.width = state->width; + new_geo.height = state->height; + bool new_size = new_geo.width != view->geometry.width || - new_geo.height != view->geometry.height || - new_geo.x != view->geometry.x || - new_geo.y != view->geometry.y; + new_geo.height != view->geometry.height; if (new_size) { // The client changed its surface size in this commit. For floating |