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 ebd39dfe0d
(which fixed the client-initiated resize case), so all that remains is
to make a small change in interactive_begin().
This commit is contained in:
John Lindgren 2025-09-01 12:07:52 -04:00 committed by Johan Malm
parent 6d2140c4b7
commit f9f4219ed4

View file

@ -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;