Fix animation retarget and reflow regressions
This commit is contained in:
parent
dfcb2d0fd6
commit
0f6f9f2602
6 changed files with 261 additions and 33 deletions
|
|
@ -67,7 +67,7 @@ These paths should not be used as evidence of multiphase behavior:
|
|||
- tile-to-float and float-to-tile, which deliberately use linear animation
|
||||
- command-driven floating move/resize, which may animate but can overlap
|
||||
- pointer or tablet drag/resize, which should not animate
|
||||
- spawn-in and spawn-out, which are always linear
|
||||
- spawn-in and spawn-out, which are single-phase and use the configured curve
|
||||
- cross-output or cross-scale movement, which should snap
|
||||
- layer-shell, overlay, override-redirect, and fullscreen map/unmap paths
|
||||
|
||||
|
|
@ -288,9 +288,9 @@ Hard failure:
|
|||
|
||||
## 9. Mixed-Action Phases
|
||||
|
||||
This case is easiest to prove with the planner tests because Wry currently has
|
||||
few user commands that create a same-batch move for one tiled window and an
|
||||
independent resize for another. The canonical geometry is:
|
||||
This case is easiest to prove with the planner tests because Wry does not yet
|
||||
have a confirmed stock command that reliably creates a same-batch move for one
|
||||
tiled window and an independent resize for another. The canonical geometry is:
|
||||
|
||||
```text
|
||||
start: A = (0,0)-(80,80) B = (200,0)-(280,80)
|
||||
|
|
@ -306,9 +306,19 @@ To exercise the current proof directly, run:
|
|||
cargo test animation::multiphase::tests::mixed_single_phase_accepts_move_and_scale_when_proven
|
||||
```
|
||||
|
||||
For visual/manual testing, use any command sequence that can produce the same
|
||||
shape in one layout batch: one window changes only x-position, and a separate,
|
||||
non-overlapping window changes only height.
|
||||
For visual/manual testing, the target shape is:
|
||||
|
||||
```text
|
||||
before: [ A ] [ B ]
|
||||
after: [ A ] [ B ]
|
||||
[ ]
|
||||
```
|
||||
|
||||
`A` must move horizontally without resizing. `B` must resize vertically without
|
||||
moving. The two motion bounds must remain separate for the whole animation. If a
|
||||
normal command sequence cannot produce that in one layout batch, treat the unit
|
||||
test as the authority and record the visual test as not applicable rather than a
|
||||
failure.
|
||||
|
||||
Expected:
|
||||
|
||||
|
|
@ -344,7 +354,8 @@ Use a long duration, then issue commands mid-animation:
|
|||
|
||||
- swap, then reverse before completion
|
||||
- resize, then resize in the other direction before completion
|
||||
- move a window out of a stack, then back before completion
|
||||
- build `[A | [B | C | D]]`, move `C` left to form `[A | C | [B | D]]`,
|
||||
then move `C` back into the stack before completion
|
||||
- start a multiphase group, then change only one window's destination if a
|
||||
command sequence allows it
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue