launcher: prevent overlap with dashboard

Fixes #612
This commit is contained in:
2 * r + 2 * t 2025-09-13 19:07:04 +10:00
parent c09d5a6c03
commit 252f19ec0e
6 changed files with 24 additions and 5 deletions

View file

@ -15,9 +15,10 @@ Item {
required property PersistentProperties state
required property FileDialog facePicker
readonly property real nonAnimWidth: view.implicitWidth + viewWrapper.anchors.margins * 2
readonly property real nonAnimHeight: tabs.implicitHeight + tabs.anchors.topMargin + view.implicitHeight + viewWrapper.anchors.margins * 2
implicitWidth: nonAnimWidth
implicitHeight: tabs.implicitHeight + tabs.anchors.topMargin + view.implicitHeight + viewWrapper.anchors.margins * 2
implicitHeight: nonAnimHeight
Tabs {
id: tabs

View file

@ -31,6 +31,8 @@ Item {
}
}
readonly property real nonAnimHeight: state === "visible" ? (content.item?.nonAnimHeight ?? 0) : 0
visible: height > 0
implicitHeight: 0
implicitWidth: content.implicitWidth

View file

@ -62,6 +62,7 @@ Item {
Launcher.Wrapper {
id: launcher
screen: root.screen
visibilities: root.visibilities
panels: root

View file

@ -13,6 +13,7 @@ Item {
required property PersistentProperties visibilities
required property var panels
required property real maxHeight
readonly property int padding: Appearance.padding.large
readonly property int rounding: Appearance.rounding.large
@ -36,6 +37,7 @@ Item {
content: root
visibilities: root.visibilities
panels: root.panels
maxHeight: root.maxHeight - searchWrapper.implicitHeight - root.padding * 3
search: search
padding: root.padding
rounding: root.rounding

View file

@ -14,6 +14,7 @@ Item {
required property var content
required property PersistentProperties visibilities
required property var panels
required property real maxHeight
required property StyledTextField search
required property int padding
required property int rounding
@ -33,7 +34,7 @@ Item {
PropertyChanges {
root.implicitWidth: Config.launcher.sizes.itemWidth
root.implicitHeight: appList.implicitHeight > 0 ? appList.implicitHeight : empty.implicitHeight
root.implicitHeight: Math.min(root.maxHeight, appList.implicitHeight > 0 ? appList.implicitHeight : empty.implicitHeight)
appList.active: true
}
@ -78,8 +79,7 @@ Item {
active: false
anchors.left: parent.left
anchors.right: parent.right
anchors.fill: parent
sourceComponent: AppList {
search: root.search

View file

@ -8,12 +8,22 @@ import QtQuick
Item {
id: root
required property ShellScreen screen
required property PersistentProperties visibilities
required property var panels
readonly property bool shouldBeActive: visibilities.launcher && Config.launcher.enabled
property int contentHeight
readonly property real maxHeight: {
let max = screen.height - Config.border.thickness * 2 - Appearance.spacing.large;
if (visibilities.dashboard)
max -= panels.dashboard.nonAnimHeight;
return max;
}
onMaxHeightChanged: timer.start()
visible: height > 0
implicitHeight: 0
implicitWidth: content.implicitWidth
@ -84,7 +94,7 @@ Item {
interval: Appearance.anim.durations.extraLarge
onRunningChanged: {
if (running) {
if (running && !root.shouldBeActive) {
content.visible = false;
content.active = true;
} else {
@ -108,6 +118,9 @@ Item {
sourceComponent: Content {
visibilities: root.visibilities
panels: root.panels
maxHeight: root.maxHeight
Component.onCompleted: root.contentHeight = implicitHeight
}
}
}