aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-24 12:11:11 +0200
committerDanilo M. <danix@danix.xyz>2026-10-24 12:11:11 +0200
commit4a9956c746c3fc724db6efeccd56fbbf2c30049e (patch)
tree17b285d7ce02b85dfa642c26d43e1d5b620c2de3
parentb75031c1320615ef636dbfeb42e2e73b2926382a (diff)
downloadquickshell-4a9956c746c3fc724db6efeccd56fbbf2c30049e.tar.gz
quickshell-4a9956c746c3fc724db6efeccd56fbbf2c30049e.zip
companion: no move while a hop is in flight
hopping counts as away, so a goal change during the exit (the chat card closing mid-drop) moved the window before the drop had played. settled already takes the latest goal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
-rw-r--r--desktop/companion/Companion.qml4
1 files changed, 3 insertions, 1 deletions
diff --git a/desktop/companion/Companion.qml b/desktop/companion/Companion.qml
index 21b1a38..8c049f2 100644
--- a/desktop/companion/Companion.qml
+++ b/desktop/companion/Companion.qml
@@ -76,8 +76,10 @@ PanelWindow {
// No focused monitor (outputs gone over a suspend) is not a destination.
// Already out of view, there is no exit to wait for: settled would never
// fire, hopping would stick and hide her for good, so move at once.
+ // Mid-hop, settled takes the latest goal; moving now would jump the
+ // window before the exit has played (hopping counts as away).
function move() {
- if (root.goal === "" || (root.goal === root.here && root.seated === root.sitting)) return;
+ if (root.hopping || root.goal === "" || (root.goal === root.here && root.seated === root.sitting)) return;
if (root.here === "" || root.away) {
root.here = root.goal;
root.sitting = root.seated;