From eb7629c5804b75d99be717a3f401f0c15adb9029 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 19 Oct 2026 09:19:10 +0200 Subject: notifications: place, mute and DND balloons from config.json Screen and corner come from the shared config. Mute and the DND rule go through NotifyConfig.withheld, so the settings page's node check covers the same decision the balloon makes. Co-Authored-By: Claude Opus 5.5 --- notifications/NotificationBalloon.qml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'notifications/NotificationBalloon.qml') diff --git a/notifications/NotificationBalloon.qml b/notifications/NotificationBalloon.qml index a9f9459..6a674b8 100644 --- a/notifications/NotificationBalloon.qml +++ b/notifications/NotificationBalloon.qml @@ -11,6 +11,7 @@ import QtQuick import QtQuick.Shapes +import "NotifyConfig.js" as NC // One balloon: icon at the left, app, summary and body, an X, and the click // targets. The body is markup, which is why the daemon advertises body-markup. @@ -28,13 +29,13 @@ Rectangle { // Driven by the shell's tick. The balloon drops itself once its expiry // passes, or while a suppression says so: the drawer and snooze withhold - // everything, DND withholds low and normal but still shows critical. The - // drawer lists a notification DND chose not to pop, because a list the - // user opened is not an interruption. + // everything; a muted app and DND are config.json's call (DND passes + // critical unless dndPassCritical is off). The drawer still lists what + // was withheld, because a list the user opened is not an interruption. visible: { if (Notify.drawerOpen) return false; if (Notify.snoozeUntil > b.now) return false; - if (Notify.dnd && b.notification.urgency !== "critical") return false; + if (NC.withheld(Notify.config, b.notification, Notify.dnd)) return false; if (b.notification.expires !== 0 && b.now >= b.notification.expires) return false; return true; } -- cgit v1.2.3