dock: pinned mode acts as screen split - bar shrinks, corners adjust, opaque background
This commit is contained in:
parent
c22eb51dcd
commit
f501f977d1
9 changed files with 52 additions and 21 deletions
|
|
@ -14,11 +14,11 @@ PanelWindow {
|
|||
|
||||
required property var screen
|
||||
|
||||
visible: D.DockState.open
|
||||
visible: S.DockState.open
|
||||
color: "transparent"
|
||||
|
||||
WlrLayershell.layer: D.DockState.mode === "pinned" ? WlrLayer.Top : WlrLayer.Overlay
|
||||
WlrLayershell.exclusiveZone: D.DockState.mode === "pinned" ? _dockWidth : 0
|
||||
WlrLayershell.layer: S.DockState.mode === "pinned" ? WlrLayer.Top : WlrLayer.Overlay
|
||||
WlrLayershell.exclusiveZone: S.DockState.mode === "pinned" ? _dockWidth : 0
|
||||
WlrLayershell.namespace: "nova-dock"
|
||||
|
||||
anchors.top: true
|
||||
|
|
@ -31,8 +31,21 @@ PanelWindow {
|
|||
|
||||
implicitWidth: _dockWidth
|
||||
|
||||
// Set reserved width for bar/corners when pinned
|
||||
onVisibleChanged: {
|
||||
if (S.DockState.mode === "pinned")
|
||||
S.DockState.reservedWidth = _dockWidth;
|
||||
}
|
||||
Connections {
|
||||
target: S.DockState
|
||||
function onModeChanged() {
|
||||
if (S.DockState.mode === "pinned")
|
||||
S.DockState.reservedWidth = root._dockWidth;
|
||||
}
|
||||
}
|
||||
|
||||
// Slide animation
|
||||
property real _slideX: D.DockState.open ? 0 : _dockWidth
|
||||
property real _slideX: S.DockState.open ? 0 : _dockWidth
|
||||
|
||||
Behavior on _slideX {
|
||||
enabled: !S.Theme.reducedMotion
|
||||
|
|
@ -46,7 +59,7 @@ PanelWindow {
|
|||
HoverHandler {
|
||||
id: _dockHover
|
||||
onHoveredChanged: {
|
||||
if (!hovered && D.DockState.mode === "overlay")
|
||||
if (!hovered && S.DockState.mode === "overlay")
|
||||
_overlayCloseTimer.restart();
|
||||
else
|
||||
_overlayCloseTimer.stop();
|
||||
|
|
@ -56,16 +69,16 @@ PanelWindow {
|
|||
Timer {
|
||||
id: _overlayCloseTimer
|
||||
interval: 200
|
||||
onTriggered: if (D.DockState.mode === "overlay")
|
||||
D.DockState.close()
|
||||
onTriggered: if (S.DockState.mode === "overlay")
|
||||
S.DockState.close()
|
||||
}
|
||||
|
||||
// Background
|
||||
// Background - fully opaque when pinned, semi-transparent in overlay
|
||||
Rectangle {
|
||||
id: _bg
|
||||
anchors.fill: parent
|
||||
color: S.Theme.base00
|
||||
opacity: Math.max(S.Theme.barOpacity, 0.85)
|
||||
opacity: S.DockState.mode === "pinned" ? 1.0 : Math.max(S.Theme.barOpacity, 0.85)
|
||||
|
||||
transform: Translate {
|
||||
x: root._slideX
|
||||
|
|
@ -355,7 +368,7 @@ PanelWindow {
|
|||
_runner.command = cmd;
|
||||
_runner.running = true;
|
||||
}
|
||||
onDismiss: D.DockState.close()
|
||||
onDismiss: S.DockState.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -370,13 +383,13 @@ PanelWindow {
|
|||
M.ProcessList {
|
||||
id: _cpuProcs
|
||||
sortBy: "cpu"
|
||||
active: _cpuCard.expanded && D.DockState.open
|
||||
active: _cpuCard.expanded && S.DockState.open
|
||||
}
|
||||
|
||||
M.ProcessList {
|
||||
id: _memProcs
|
||||
sortBy: "mem"
|
||||
active: _memCard.expanded && D.DockState.open
|
||||
active: _memCard.expanded && S.DockState.open
|
||||
}
|
||||
|
||||
PwObjectTracker {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue