aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--notifications/Balloons.qml11
1 files changed, 8 insertions, 3 deletions
diff --git a/notifications/Balloons.qml b/notifications/Balloons.qml
index 9fa5a85..3676e67 100644
--- a/notifications/Balloons.qml
+++ b/notifications/Balloons.qml
@@ -38,9 +38,14 @@ Scope {
PanelWindow {
id: win
- // Each balloon hides itself when it expires or is suppressed, so the
- // column collapses to zero and the window follows it.
- visible: column.implicitHeight > 0
+ // From the queue, never from layout: a hidden window stops polishing,
+ // and Column computes implicitHeight during polish, so deriving
+ // visibility from it would never turn true again after the first
+ // hide. Queue membership is a plain property the binding re-reads
+ // whether or not the window is mapped, so a later notification
+ // re-maps it. Expired entries that stay in the queue keep a
+ // zero-height window mapped, which is harmless.
+ visible: root.live.length > 0
screen: Quickshell.screens.find(s => s.name === "DP-1") ?? Quickshell.screens[0]
anchors { bottom: true; right: true }
margins { bottom: 12; right: 12 }