From 568bc71ca2cccdbf323a0b31484aebb22ada8561 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Wed, 27 Nov 2024 07:39:30 +0100 Subject: [PATCH] xwayland.c: support both axis for client side maximize requests --- src/xwayland.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/xwayland.c b/src/xwayland.c index 34c3a3fe..36da5ec0 100644 --- a/src/xwayland.c +++ b/src/xwayland.c @@ -417,19 +417,28 @@ static void handle_request_maximize(struct wl_listener *listener, void *data) { struct view *view = wl_container_of(listener, view, request_maximize); + struct wlr_xwayland_surface *surf = xwayland_surface_from_view(view); if (!view->mapped) { ensure_initial_geometry_and_output(view); /* * Set decorations early to avoid changing geometry * after maximize (reduces visual glitches). */ - if (want_deco(xwayland_surface_from_view(view))) { + if (want_deco(surf)) { view_set_ssd_mode(view, LAB_SSD_MODE_FULL); } else { view_set_ssd_mode(view, LAB_SSD_MODE_NONE); } } - view_toggle_maximize(view, VIEW_AXIS_BOTH); + + enum view_axis maximize = VIEW_AXIS_NONE; + if (surf->maximized_vert) { + maximize |= VIEW_AXIS_VERTICAL; + } + if (surf->maximized_horz) { + maximize |= VIEW_AXIS_HORIZONTAL; + } + view_maximize(view, maximize, /*store_natural_geometry*/ true); } static void