Skip to content

Commit 1398dd2

Browse files
committed
fix(notifications): dismiss popups when senders close notifications
When a sender calls CloseNotification (per freedesktop spec) for a persistent notification (expire-timeout=0), the onDropped handler removed the wrapper from internal arrays but did not dismiss the visible popup. The popup remained on screen forever for non-critical notifications like YubiKey touch prompts. Set wrapper.popup=false in onDropped so the popup exits via the normal signal chain. This is minimal; it does not change timeout handling, queue management, or the isPersistent marker. Also reverts the previous workaround that special-cased non-critical expireTimeout=0 to use DMS timeout. Upstream spec-correct behavior is to honor the sender timeout, and fix the dismissal bug instead. Closes #2814
1 parent 71b1901 commit 1398dd2

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

quickshell/Services/NotificationService.qml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,6 +888,11 @@ Singleton {
888888
return;
889889
}
890890

891+
// Dismiss visible popup when sender closes the notification
892+
// (e.g. YubiKey sends CloseNotification after touch).
893+
// Without this, expireTimeout=0 popups stay visible forever.
894+
wrapper.popup = false;
895+
891896
const groupKey = getGroupKey(wrapper);
892897
const remainingInGroup = root.notifications.filter(n => getGroupKey(n) === groupKey);
893898

0 commit comments

Comments
 (0)