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:
parent
787075f47f
commit
9d2099ccfc
1 changed files with 18 additions and 2 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue