Add animation effects for smooth user experience

Implemented comprehensive animation effects throughout the extension:

1. Zone Overlay Animations:
   - Fade-in animation (200ms) when showing zones
   - Fade-out animation (150ms) when hiding zones
   - Uses Clutter.AnimationMode.EASE_OUT_QUAD for smooth easing

2. Window Snapping Animations:
   - Smooth animated window movement (250ms) when snapping to zones
   - Animates window actor position and size
   - Falls back to instant move if actor not available
   - Final position set precisely after animation completes

3. Visual Snap Feedback:
   - Green flash effect when window snaps to zone
   - Flash shows the exact zone boundaries
   - Fades out over 400ms
   - Works for both Shift+drag and keyboard snapping

Implementation details:
- Used Clutter's ease() method for all animations
- Overlay fade animations prevent jarring appearance/disappearance
- Window animations use compositor actor for smooth transitions
- Flash feedback uses temporary widget with auto-cleanup
- All animations use EASE_OUT_QUAD for natural feel

User experience improvements:
- Zones appear and disappear smoothly instead of instantly
- Windows glide into position rather than jumping
- Clear visual confirmation when snap occurs
- Professional, polished feel throughout

Fixes TODO item #11.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-15 21:54:35 -07:00
parent 7816d41571
commit eb7a57617e
2 changed files with 91 additions and 16 deletions

View File

@@ -111,11 +111,11 @@
- [ ] 1/3 - 2/3 layouts
- [ ] Picture-in-picture style layouts
### 11. Animation Effects
### 11. Animation Effects ✅ COMPLETED
**Priority: Low**
- [ ] Add smooth transitions when snapping windows
- [ ] Animate zone overlay appearance/disappearance
- [ ] Visual feedback when window snaps to zone
- [x] Add smooth transitions when snapping windows
- [x] Animate zone overlay appearance/disappearance
- [x] Visual feedback when window snaps to zone
### 12. Settings Panel ✅ COMPLETED
**Priority: Medium**