interactive: allow moving horizontally/vertically maximized window

Applies drag resistance unidirectionally for horizontally/vertically
maximized windows, allowing them to be dragged without being untiled
immediately. When the distance of cursor movement orthogonal to the
maximized direction exceeds <resistance><unMaximizeThreshold>.

While dragging a horizontally/vertically maximized window, edge/region
snapping is disabled to prevent unintentional snapping and overlays.

This commit also includes some refactoring to simplify the logic.
This commit is contained in:
tokyo4j 2024-08-07 09:17:25 +09:00 committed by Consolatis
parent 2e19bd4d5b
commit 1f1bdad087
11 changed files with 137 additions and 120 deletions

View file

@ -330,6 +330,11 @@ this is for compatibility with Openbox.
Sets the movement of cursor in pixel required for a tiled or maximized
window to be moved with an interactive move. Default is 20.
*<resistance><unMaximizeThreshold>*
Sets the one-dimentional movement of cursor in pixel required for a
*vertically or horizontally* maximized window to be moved with an
interactive move. Default is 150.
## FOCUS
*<focus><followMouse>* [yes|no]

View file

@ -114,7 +114,10 @@
<resistance>
<screenEdgeStrength>20</screenEdgeStrength>
<windowEdgeStrength>20</windowEdgeStrength>
<!-- resistance for maximized/tiled windows -->
<unSnapThreshold>20</unSnapThreshold>
<!-- resistance for vertically/horizontally maximized windows -->
<unMaximizeThreshold>150</unMaximizeThreshold>
</resistance>
<resize>