Watch
1
0
Fork
You've already forked souveraine
0

dock: drop to the edge where the pill does not draw

The rail takes its handle to opacity 0 on home and the dock went on
reserving 32px for it, in the drawing and the input mask alike. Only the
drawing collapses — the rail still takes both swipes there, and a dock
that claimed those pixels would eat the gesture.
This commit is contained in:
Fimeg 2026-08-16 14:02:14 -04:00
commit 9d2099ccfc

View file

@ -326,6 +326,18 @@ Scope { // Scope
// visually empty and must also be absent from the dock's *input* // visually empty and must also be absent from the dock's *input*
// region; otherwise the dock receives touches before the rail. // region; otherwise the dock receives touches before the rail.
readonly property int gestureRailHeight: Config.options?.dock.gestureRailHeight ?? 32 readonly property int gestureRailHeight: Config.options?.dock.gestureRailHeight ?? 32
// The rail draws nothing on home `SystemGestureRail` takes the
// handle's opacity to 0 there, which is Casey's own call from
// 2026-08-05: *"above the dock it has no function."* The dock went
// on reserving the strip anyway, so home had 32 px of gap under the
// bar holding space for a pill that was never going to appear.
//
// Only the *drawing* collapses. The input reservation above stays
// exactly where it is, because the rail still takes both swipes on
// home and a dock that claimed those pixels would eat the gesture.
readonly property int railVisualHeight:
ViewtopControl.activeZone === ViewtopControl.homeZone
? 0 : gestureRailHeight
visible: !GlobalStates.screenLocked && reveal visible: !GlobalStates.screenLocked && reveal
anchors { anchors {
@ -399,12 +411,16 @@ Scope { // Scope
// Reserve the rail: bottom-anchor short of the // Reserve the rail: bottom-anchor short of the
// window's bottom so the dock never covers it. // window's bottom so the dock never covers it.
bottom: parent.bottom bottom: parent.bottom
bottomMargin: dockRoot.gestureRailHeight bottomMargin: dockRoot.railVisualHeight
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
} }
Behavior on anchors.bottomMargin {
animation: Appearance.animation.elementMove.numberAnimation.createObject(this)
}
implicitWidth: dockRow.implicitWidth + 5 * 2 implicitWidth: dockRow.implicitWidth + 5 * 2
height: parent.height - Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut - dockRoot.gestureRailHeight height: parent.height - Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut - dockRoot.railVisualHeight
StyledRectangularShadow { StyledRectangularShadow {
target: dockVisualBackground target: dockVisualBackground