1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-01 19:18:28 -04:00

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
This commit is contained in:
Artem Timofeev
2026-07-10 23:08:03 +02:00
committed by GitHub
parent d82d86df5c
commit 26b2955cf3
@@ -892,6 +892,11 @@ Singleton {
return;
}
// Dismiss visible popup when sender closes the notification
// (e.g. YubiKey sends CloseNotification after touch).
// Without this, expireTimeout=0 popups stay visible forever.
wrapper.popup = false;
const groupKey = getGroupKey(wrapper);
const remainingInGroup = root.notifications.filter(n => getGroupKey(n) === groupKey);