quickshell: inset clamped panels from the frame, widen bottom cluster

A dropdown that hits the clamp landed exactly on frameWidth, fusing
into the frame band in the SDF and losing its rounded corner — that
is what the calendar was doing at the top. Clamp now insets by
panelGap at both ends.

Bottom cluster spacing 12 -> 16, separators 5 -> 10.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-07-28 13:22:51 +01:00
parent fdd44e64b2
commit 4717d1e08f

View file

@ -1573,7 +1573,7 @@ in
anchors.bottom: parent.bottom
anchors.bottomMargin: 12
anchors.horizontalCenter: barBgRect.horizontalCenter
spacing: 12
spacing: 16
// Volume
Item {
@ -1916,7 +1916,7 @@ in
// Group separator: status icons / tray / power read
// as three clusters instead of one clump.
Item { width: Theme.barWidth; height: 5 }
Item { width: Theme.barWidth; height: 10 }
// Tray icons stacked, like everything else in the column
Column {
@ -1999,7 +1999,7 @@ in
// Group separator: status icons / tray / power read
// as three clusters instead of one clump.
Item { width: Theme.barWidth; height: 5 }
Item { width: Theme.barWidth; height: 10 }
// Power menu opener bottom-left corner. Opens the same
// session menu as Super+L, which now unfolds from here.
@ -2068,9 +2068,14 @@ in
open = true;
}
// Inset by panelGap so a panel that hits the clamp never
// sits flush on the frame band: flush fuses the two in the
// SDF and eats the panel's rounded corner. Outer max wins
// when a panel is taller than the space (yMax < yMin).
readonly property real yMin: Theme.frameWidth + Theme.panelGap
readonly property real yMax: bar.height - Theme.frameWidth - Theme.panelGap - height
x: Theme.barWidth
y: Math.round(Math.min(bar.height - Theme.frameWidth - height,
Math.max(Theme.frameWidth, dropdownY - height / 2)))
y: Math.round(Math.max(yMin, Math.min(yMax, dropdownY - height / 2)))
width: fullWidth + 4
height: fullHeight + 16
visible: false