From da9faa9db8fbf813d815d30fc8d590a034704ead Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 24 Oct 2026 09:31:17 +0200 Subject: 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 --- desktop/companion/Figure.qml | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'desktop/companion/Figure.qml') 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 } -- cgit v1.2.3