diff options
| -rw-r--r-- | notifications/Balloons.qml | 11 |
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 } |
