diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-24 09:31:17 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-24 09:31:17 +0200 |
| commit | da9faa9db8fbf813d815d30fc8d590a034704ead (patch) | |
| tree | 6e852d626bce31607a0165c636e21eca58dc9b58 /desktop/companion/Figure.qml | |
| parent | d95199db6c1ca830fdf10d32cadbe8f8a4f71d83 (diff) | |
| download | quickshell-da9faa9db8fbf813d815d30fc8d590a034704ead.tar.gz quickshell-da9faa9db8fbf813d815d30fc8d590a034704ead.zip | |
companion: stay out of view when the shell starts with her hidden
A shell started with Prefs.companion false created the Figure with out
already true. A starting value fires no onOutChanged, so the drop never
ran and she was drawn in place. Hidden, her 200 ms clock does not tick,
so every timed step froze: an empty desktop left her on the watch frame
of the wallpaper blush, and a balloon left her on shoved, never mad.
Toggling her on made the bug look fixed until the next restart.
The body is now invisible while out and not animating, and the first
entrance after such a start begins from below like any other.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/companion/Figure.qml')
| -rw-r--r-- | desktop/companion/Figure.qml | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/desktop/companion/Figure.qml b/desktop/companion/Figure.qml index 3401168..df21bf5 100644 --- a/desktop/companion/Figure.qml +++ b/desktop/companion/Figure.qml @@ -59,8 +59,14 @@ Item { target: s; property: "drop"; duration: 320 onFinished: s.settled(s.out) } + // Out from creation (a shell started with her hidden) never ran the drop, + // since a starting value fires no onOutChanged, and she was drawn in place + // with her clock stopped, frozen on whatever frame came next. The body + // below hides her until she is shown, and the first entrance starts from + // below like any other. onOutChanged: { dropAnim.stop(); + if (!s.out && s.drop === 0) s.drop = s.height + 24; dropAnim.to = s.out ? s.height + 24 : 0; dropAnim.easing.type = s.out ? Easing.InCubic : Easing.OutBack; dropAnim.start(); @@ -86,6 +92,7 @@ Item { Item { anchors.fill: parent + visible: !s.out || dropAnim.running opacity: 1 - s.drop / (s.height + 24) transform: Translate { x: s.shake; y: s.drop - s.bob } |
