make DockButton not rely on auto-cascaded dockRow.padding

This commit is contained in:
end-4
2025-08-18 18:17:14 +07:00
parent d051246b7e
commit 0f81d2cace
3 changed files with 22 additions and 21 deletions
+18 -18
View File
@@ -16,19 +16,18 @@ Scope { // Scope
id: root
property bool pinned: Config.options?.dock.pinnedOnStartup ?? false
Variants { // For each monitor
Variants {
// For each monitor
model: Quickshell.screens
PanelWindow { // Window
required property var modelData
PanelWindow {
id: dockRoot
// Window
required property var modelData
screen: modelData
visible: !GlobalStates.screenLocked
property bool reveal: root.pinned
|| (Config.options?.dock.hoverToReveal && dockMouseArea.containsMouse)
|| dockApps.requestDockShow
|| (!ToplevelManager.activeToplevel?.activated)
property bool reveal: root.pinned || (Config.options?.dock.hoverToReveal && dockMouseArea.containsMouse) || dockApps.requestDockShow || (!ToplevelManager.activeToplevel?.activated)
anchors {
bottom: true
@@ -36,9 +35,7 @@ Scope { // Scope
right: true
}
exclusiveZone: root.pinned ? implicitHeight
- (Appearance.sizes.hyprlandGapsOut)
- (Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut) : 0
exclusiveZone: root.pinned ? implicitHeight - (Appearance.sizes.hyprlandGapsOut) - (Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut) : 0
implicitWidth: dockBackground.implicitWidth
WlrLayershell.namespace: "quickshell:dock"
@@ -55,9 +52,7 @@ Scope { // Scope
height: parent.height
anchors {
top: parent.top
topMargin: dockRoot.reveal ? 0 :
Config.options?.dock.hoverToReveal ? (dockRoot.implicitHeight - Config.options.dock.hoverRegionHeight) :
(dockRoot.implicitHeight + 1)
topMargin: dockRoot.reveal ? 0 : Config.options?.dock.hoverToReveal ? (dockRoot.implicitHeight - Config.options.dock.hoverRegionHeight) : (dockRoot.implicitHeight + 1)
horizontalCenter: parent.horizontalCenter
}
implicitWidth: dockHoverRegion.implicitWidth + Appearance.sizes.elevationMargin * 2
@@ -108,7 +103,8 @@ Scope { // Scope
VerticalButtonGroup {
Layout.topMargin: Appearance.sizes.hyprlandGapsOut // why does this work
GroupButton { // Pin button
GroupButton {
// Pin button
baseWidth: 35
baseHeight: 35
clickedWidth: baseWidth
@@ -125,11 +121,16 @@ Scope { // Scope
}
}
DockSeparator {}
DockApps { id: dockApps; }
DockApps {
id: dockApps
buttonPadding: dockRow.padding
}
DockSeparator {}
DockButton {
Layout.fillHeight: true
onClicked: GlobalStates.overviewOpen = !GlobalStates.overviewOpen
topInset: Appearance.sizes.hyprlandGapsOut + dockRow.padding
bottomInset: Appearance.sizes.hyprlandGapsOut + dockRow.padding
contentItem: MaterialSymbol {
anchors.fill: parent
horizontalAlignment: Text.AlignHCenter
@@ -139,9 +140,8 @@ Scope { // Scope
}
}
}
}
}
}
}
}
}
@@ -16,6 +16,7 @@ Item {
property real maxWindowPreviewHeight: 200
property real maxWindowPreviewWidth: 300
property real windowControlsHeight: 30
property real buttonPadding: 5
property Item lastHoveredButton
property bool buttonHovered: false
@@ -84,6 +85,9 @@ Item {
required property var modelData
appToplevel: modelData
appListRoot: root
topInset: Appearance.sizes.hyprlandGapsOut + root.buttonPadding
bottomInset: Appearance.sizes.hyprlandGapsOut + root.buttonPadding
}
}
@@ -11,8 +11,5 @@ RippleButton {
implicitWidth: implicitHeight - topInset - bottomInset
buttonRadius: Appearance.rounding.normal
topInset: Appearance.sizes.hyprlandGapsOut + dockRow.padding
bottomInset: Appearance.sizes.hyprlandGapsOut + dockRow.padding
background.implicitHeight: 50
}