aboutsummaryrefslogtreecommitdiffstats
path: root/volume-osd
diff options
context:
space:
mode:
Diffstat (limited to 'volume-osd')
-rw-r--r--volume-osd/README.md7
-rw-r--r--volume-osd/VolumeOsd.qml13
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