| @@ -363,21 +363,32 @@ | ||
| 363 | 363 | } |
| 364 | 364 | } |
| 365 | 365 | |
| 366 | 366 | /* |
| 367 | - * Minimized state — fade + scale down. | |
| 368 | - * Uses opacity + pointer-events instead of display: none so the | |
| 369 | - * CSS transition can animate the change. The window is invisible | |
| 370 | - * and non-interactive but stays in the DOM for a smooth restore. | |
| 367 | + * Minimized state — window is hidden and non-interactive at the dock. | |
| 368 | + * Uses opacity + pointer-events + transition: none so neither state | |
| 369 | + * changes nor WAAPI animation teardown trigger accidental transitions. | |
| 371 | 370 | */ |
| 372 | 371 | .os-window--minimized { |
| 373 | 372 | opacity: 0; |
| 374 | - transform: scale(0.92) translateY(16px); | |
| 375 | 373 | pointer-events: none; |
| 376 | - will-change: transform, opacity; | |
| 374 | + transition: none !important; | |
| 377 | 375 | } |
| 378 | 376 | |
| 379 | 377 | /* |
| 378 | + * Genie helpers — active only during the WAAPI flight to/from the | |
| 379 | + * dock. Disable the base `left/top/width/height/transform/opacity` | |
| 380 | + * transition so the CSS transition doesn't fight the WAAPI | |
| 381 | + * `element.animate()` that drives the scale-to-dock motion. The | |
| 382 | + * minimized class is applied AFTER the minimizing flight lands, and | |
| 383 | + * the restoring class is removed AFTER the restoring flight lands. | |
| 384 | + */ | |
| 385 | +.os-window--minimizing, | |
| 386 | +.os-window--restoring { | |
| 387 | + transition: none !important; | |
| 388 | +} | |
| 389 | + | |
| 390 | +/* | |
| 380 | 391 | * `pointer-events: none` on the window root above is not enough on |
| 381 | 392 | * its own: a number of descendants (most notably `.os- |
| 382 | 393 | * file-tile`, but also other tile renderers) explicitly set |
| 383 | 394 | * `pointer-events: auto` so the wallpaper / folder layer doesn't |
| @@ -416,8 +427,13 @@ | ||
| 416 | 427 | transition-duration: 0.01ms !important; |
| 417 | 428 | } |
| 418 | 429 | .os-window--opening { |
| 419 | 430 | animation-duration: 0.01ms !important; |
| 431 | + } | |
| 432 | + .os-window--minimizing, | |
| 433 | + .os-window--restoring { | |
| 434 | + animation: none !important; | |
| 435 | + transition: none !important; | |
| 420 | 436 | } |
| 421 | 437 | } |
| 422 | 438 | |
| 423 | 439 | /* |