mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-02 03:28:28 -04:00
ce1595d62d
A zero-duration ViewTransition still engages ListView's transition machinery but resolves within the same frame, so removed delegates are never released and displaced items are never repositioned. On a filtered ScriptModel that re-filters on every keystroke this leaves stale rows and empty gaps behind, visible in any DankListView-backed list. The shortest sub-duration (remove/add = expressiveDurations.fast = base * 0.4) is coerced to an int, so it truncates to 0ms for any animation base duration below 3: animation speed None (0), or a Custom duration of 1-2ms (1*0.4=0.4->0, 2*0.4=0.8->0, only 3*0.4=1.2->1 survives). Presets (250/500/750) are unaffected, which is why this only reproduces with animations disabled or a very small custom value. Gate the four transitions to null whenever that shortest sub-duration would truncate to 0, so the view takes the correct instant path instead of a broken 0ms transition. Base >= 3 is unchanged.