From f9f4219ed495885ce1d679dcb2395b3b386f3765 Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Mon, 1 Sep 2025 12:07:52 -0400 Subject: [PATCH] interactive: un-maximize only axes that are being resized When resizing in only one axis (horizontal/vertical), there's no reason to un-maximize the other axis. Supporting logic was landed in the previous commit and in ebd39dfe0d1d (which fixed the client-initiated resize case), so all that remains is to make a small change in interactive_begin(). --- src/interactive.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/interactive.c b/src/interactive.c index adc06b8c..061fe07a 100644 --- a/src/interactive.c +++ b/src/interactive.c @@ -119,10 +119,17 @@ interactive_begin(struct view *view, enum input_mode mode, enum lab_edge edges) /* * If tiled or maximized in only one direction, reset - * maximized/tiled state but keep the same geometry as - * the starting point for the resize. + * tiled state and un-maximize the relevant axes, but + * keep the same geometry as the starting point. */ - view_set_maximized(view, VIEW_AXIS_NONE); + enum view_axis maximized = view->maximized; + if (edges & LAB_EDGES_LEFT_RIGHT) { + maximized &= ~VIEW_AXIS_HORIZONTAL; + } + if (edges & LAB_EDGES_TOP_BOTTOM) { + maximized &= ~VIEW_AXIS_VERTICAL; + } + view_set_maximized(view, maximized); view_set_untiled(view); cursor_shape = cursor_get_from_edge(edges); break; -- 2.52.0