diff options
Diffstat (limited to 'volume-osd')
| -rw-r--r-- | volume-osd/README.md | 7 | ||||
| -rw-r--r-- | volume-osd/VolumeOsd.qml | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/volume-osd/README.md b/volume-osd/README.md index d99140f..5ec9f59 100644 --- a/volume-osd/README.md +++ b/volume-osd/README.md @@ -118,6 +118,13 @@ current while something binds the node. Without the tracker the volume reads once and then goes stale, which looks like an OSD that displays a number from several changes ago. +**A config with no visible window exits.** The OSD is hidden most of the time, +so it holds itself open with a 1x1 transparent window with an empty mask, +which is click-through and draws nothing. Without it the shell loads, reports +no error, and quits, and the symptom is a keybind that appears to do nothing +or a panel that never paints. This was removed once during development after +misreading a process check, and the bug came straight back. + **A Row sizes to its children, not to its parent.** The track row's text column originally had a fixed width, and art + text + buttons + spacing came to 356px inside a 328px content box, so the `next` button hung over the panel diff --git a/volume-osd/VolumeOsd.qml b/volume-osd/VolumeOsd.qml index ab7eb62..f739aec 100644 --- a/volume-osd/VolumeOsd.qml +++ b/volume-osd/VolumeOsd.qml @@ -81,6 +81,19 @@ Scope { onTriggered: root.active = null } + // Quickshell exits once no window is visible, and the OSD is hidden most + // of the time, so a 1x1 transparent window holds the process open. Its + // empty mask makes it click-through, so it cannot catch a stray click. + PanelWindow { + visible: true + implicitWidth: 1 + implicitHeight: 1 + color: "transparent" + exclusionMode: ExclusionMode.Ignore + mask: Region {} + WlrLayershell.keyboardFocus: WlrKeyboardFocus.None + } + PanelWindow { id: win |
