No description
Inter-icon hover changes were snapping because icon_scale_for read the hovered icon's real rectangle directly. This adds a small animation layer so the bell center lerps toward the target and the whole effect fades in/out at the dock's edges. CosmicAppList gains three fields: - anim_hover_center: Option<(f32, f32)> — virtual cursor position, chases the hovered icon's center across ticks. - anim_hover_intensity: f32 (0..1) — global fade-in/out of the fisheye. Target 1.0 while a dock icon is hovered, 0.0 otherwise. - anim_last_tick: Option<Instant> — for dt-based exponential smoothing (time-constant tau = 60ms, ~99% of target reached in ~120ms). A new Message::AnimTick(Instant) is emitted at ~60 fps by a conditional iced::time::every subscription — only active when the pointer is over a dock icon OR intensity hasn't faded back to ~0 yet, so the panel stays idle when no one is hovering the dock. icon_scale_for now reads anim_hover_center instead of rectangles[hovered] and multiplies the bell's peak by anim_hover_intensity. Behaviour: - Pointer slides A → B: bell glides continuously, both icons animate. - Pointer enters dock: icons inflate smoothly over ~120 ms. - Pointer leaves dock: icons deflate smoothly over ~120 ms. Fallback paths (first frame, missing rectangles) still respond instantly so the feature never looks 'stuck' before the animation kicks in. |
||
|---|---|---|
| .github | ||
| cosmic-app-list | ||
| cosmic-applet-a11y | ||
| cosmic-applet-audio | ||
| cosmic-applet-battery | ||
| cosmic-applet-bluetooth | ||
| cosmic-applet-input-sources | ||
| cosmic-applet-minimize | ||
| cosmic-applet-network | ||
| cosmic-applet-notifications | ||
| cosmic-applet-power | ||
| cosmic-applet-status-area | ||
| cosmic-applet-tiling | ||
| cosmic-applet-time | ||
| cosmic-applet-workspaces | ||
| cosmic-applets | ||
| cosmic-applets-config | ||
| cosmic-panel-app-button/data | ||
| cosmic-panel-button | ||
| cosmic-panel-launcher-button/data | ||
| cosmic-panel-workspaces-button/data | ||
| data | ||
| debian | ||
| i18n | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| LICENSE | ||
| rust-toolchain.toml | ||