summaryrefslogtreecommitdiff
path: root/modules/bar/popouts/Content.qml
diff options
context:
space:
mode:
Diffstat (limited to 'modules/bar/popouts/Content.qml')
-rw-r--r--modules/bar/popouts/Content.qml42
1 files changed, 30 insertions, 12 deletions
diff --git a/modules/bar/popouts/Content.qml b/modules/bar/popouts/Content.qml
index 38fcb22..43a0a09 100644
--- a/modules/bar/popouts/Content.qml
+++ b/modules/bar/popouts/Content.qml
@@ -15,16 +15,6 @@ Item {
property real currentCenter
property bool hasCurrent
- Behavior on currentCenter {
- enabled: root.implicitWidth > 0
-
- NumberAnimation {
- duration: Appearance.anim.durations.normal
- easing.type: Easing.BezierSpline
- easing.bezierCurve: Appearance.anim.curves.emphasized
- }
- }
-
anchors.centerIn: parent
implicitWidth: hasCurrent ? (content.children.find(c => c.shouldBeActive)?.implicitWidth ?? 0) + Appearance.padding.large * 2 : 0
@@ -70,8 +60,26 @@ Item {
required property int index
name: `traymenu${index}`
- sourceComponent: TrayMenu {
- trayItem: trayMenu.modelData.menu
+ sourceComponent: trayMenuComp
+
+ Connections {
+ target: root
+
+ function onHasCurrentChanged(): void {
+ if (root.hasCurrent && trayMenu.shouldBeActive) {
+ trayMenu.sourceComponent = null;
+ trayMenu.sourceComponent = trayMenuComp;
+ }
+ }
+ }
+
+ Component {
+ id: trayMenuComp
+
+ TrayMenu {
+ popouts: root
+ trayItem: trayMenu.modelData.menu
+ }
}
}
}
@@ -91,6 +99,16 @@ Item {
}
}
+ Behavior on currentCenter {
+ enabled: root.implicitWidth > 0
+
+ NumberAnimation {
+ duration: Appearance.anim.durations.normal
+ easing.type: Easing.BezierSpline
+ easing.bezierCurve: Appearance.anim.curves.emphasized
+ }
+ }
+
component Popout: Loader {
id: popout