Skip to content

Commit 26b2955

Browse files
authored
fix(notifications): dismiss popups when senders close notifications (#2815)
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 d82d86d commit 26b2955

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
@@ -892,6 +892,11 @@ Singleton {
892892
return;
893893
}
894894

895+
// Dismiss visible popup when sender closes the notification
896+
// (e.g. YubiKey sends CloseNotification after touch).
897+
// Without this, expireTimeout=0 popups stay visible forever.
898+
wrapper.popup = false;
899+
895900
const groupKey = getGroupKey(wrapper);
896901
const remainingInGroup = root.notifications.filter(n => getGroupKey(n) === groupKey);
897902

0 commit comments

Comments
 (0)