diff --git a/panels/notification/osd/audio/audioapplet.cpp b/panels/notification/osd/audio/audioapplet.cpp index 81acf6d77..f09371fde 100644 --- a/panels/notification/osd/audio/audioapplet.cpp +++ b/panels/notification/osd/audio/audioapplet.cpp @@ -84,6 +84,8 @@ QString AudioApplet::fetchIconName() const level = "100"; else if (volume > 1) level = "more"; + else + return "osd_volume_mute"; return QString("osd_volume_%1").arg(level); } diff --git a/panels/notification/server/dbusadaptor.cpp b/panels/notification/server/dbusadaptor.cpp index 61438fdab..b0206baca 100644 --- a/panels/notification/server/dbusadaptor.cpp +++ b/panels/notification/server/dbusadaptor.cpp @@ -8,6 +8,7 @@ #include #include #include +#include namespace notification { Q_DECLARE_LOGGING_CATEGORY(notifyLog) @@ -30,6 +31,20 @@ uint DbusAdaptor::Notify(const QString &appName, uint replacesId, const QString const QString &body, const QStringList &actions, const QVariantMap &hints, int expireTimeout) { + // Delay processing for 3 seconds when appIcon == "deepin-screen-recorder" + if (appIcon == "deepin-screen-recorder") { + // Use QTimer to delay processing asynchronously without blocking other notifications + QTimer::singleShot(3000, this, [this, appName, replacesId, appIcon, summary, body, actions, hints, expireTimeout]() { + uint id = manager()->Notify(appName, replacesId, appIcon, summary, body, actions, hints, expireTimeout); + if (id == 0) { + QDBusError error(QDBusError::InternalError, "Notify failed."); + QDBusMessage reply = QDBusMessage::createError(error); + QDBusConnection::sessionBus().send(reply); + } + }); + return 1; + } + uint id = manager()->Notify(appName, replacesId, appIcon, summary, body, actions, hints, expireTimeout); if (id == 0) { QDBusError error(QDBusError::InternalError, "Notify failed.");