interactive: allow moving horizontally/vertically maximized window #2052
138
−126
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1521
Applies drag resistance unidirectionally for horizontally/vertically maximized windows, allowing them to be dragged without being untiled immediately.
While dragging a horizontally/vertically maximized window, edge/region snapping is disabled to prevent unintentional snapping and overlays.
The first commit stops unshading maximized/tiled views at the start of interactive move as it did't seem to be useful and caused flicker.
This PR also includes some refactoring to simplify the logic.
I'm totally fine delaying this PR after the next release. But I want to move forward the discussion below:
Discussion
As I said in IRC yesterday, I'm thinking of changing
<snapping><dragResistance>
to something like<resistance><snapOffThreshold>
(or maybe<resistance><unSnapThreshold>
) as<resistance>
feels more suitable place for this setting. But while testing this PR, I started to think that it may be also useful to have another setting to configure the resistance for horizontally/vertically maximized windows as it requires more carefulness to drag them in one direction without un-tiling them.What I came up with are:
<resistance><snapOffThreshold>
- for normally maximized or tiled windows<resistance><snapOffThresholdHVMaximized>
- for horizontally/vertically maximized windowsAny ideas?