From 78dcf288d9ae3a80002fe40d23c9ed85021f7e7a Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 24 Oct 2026 12:09:29 +0200 Subject: assistant: the canvas owns tall and the card's top The companion needs both to sit on the chat card, and should not reach into the card for them. Card.tall now reads the canvas's, so there is one definition of when the card is tall. Co-Authored-By: Claude Sonnet 5.5 --- desktop/assistant/Assistant.qml | 8 +++++++- desktop/assistant/Card.qml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'desktop/assistant') diff --git a/desktop/assistant/Assistant.qml b/desktop/assistant/Assistant.qml index 0b7026d..4144910 100644 --- a/desktop/assistant/Assistant.qml +++ b/desktop/assistant/Assistant.qml @@ -112,6 +112,12 @@ Scope { readonly property var screenObj: Quickshell.screens.find(s => s.name === root.monitor) ?? Quickshell.screens[0] + // The tall card (a chat, or a panel) is fullHeight and centred, so its + // top only moves on entering or leaving tall. The companion sits there. + readonly property bool tall: root.mode === "chat" || root.historyOpen || root.pickerOpen || root.modelsOpen + readonly property int fullHeight: Math.round(root.screenObj.height * 0.7) + readonly property int cardTop: Math.round((root.screenObj.height - root.fullHeight) / 2) + function toggle() { if (root.open) root.close(); else root.show(); } // A conversation idle for 10 minutes is over: opening starts a new one, @@ -552,7 +558,7 @@ Scope { Card { anchors.centerIn: parent width: Math.min(760, parent.width - 48) - fullHeight: Math.round(parent.height * 0.7) + fullHeight: root.fullHeight canvas: root turnModel: turns } diff --git a/desktop/assistant/Card.qml b/desktop/assistant/Card.qml index 810920f..2f85e50 100644 --- a/desktop/assistant/Card.qml +++ b/desktop/assistant/Card.qml @@ -29,7 +29,7 @@ Rectangle { readonly property string mode: card.canvas.mode readonly property bool panel: card.canvas.historyOpen || card.canvas.pickerOpen || card.canvas.modelsOpen - readonly property bool tall: card.mode === "chat" || card.panel + readonly property bool tall: card.canvas.tall // Bottom-up: the input, then the actions (file state), then the chips. height: card.tall ? card.fullHeight -- cgit v1.2.3