[gnome-shell/wip/cosimoc/notification-refactor] notificationDaemon: use different reason when replacing notification
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/cosimoc/notification-refactor] notificationDaemon: use different reason when replacing notification
- Date: Thu, 11 Oct 2018 03:10:45 +0000 (UTC)
commit f1ad8f92f99148250ce88a735427ff95ca196b8b
Author: Cosimo Cecchi <cosimo endlessm com>
Date: Wed Oct 10 18:26:31 2018 -0700
notificationDaemon: use different reason when replacing notification
Differently from the fd.o notifications, Gtk notifications do not
have a mechanism to update themselves. Instead, when a new
notification is received for an ID already known to the notification
daemon, the old notification is dismissed and a replaced with a new
one.
Currently though, there is no way to distinguish a notification that
was dismissed because of an user interaction, or because it was
replaced. That is an useful piece of information, so add a new value
to the NotificationDestroyedReason enum to account for it.
js/ui/messageTray.js | 9 ++++++---
js/ui/notificationDaemon.js | 2 +-
2 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index c0766566c..248db6558 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -50,12 +50,15 @@ var State = {
// These reasons are useful when we destroy the notifications received through
// the notification daemon. We use EXPIRED for notifications that we dismiss
// and the user did not interact with, DISMISSED for all other notifications
-// that were destroyed as a result of a user action, and SOURCE_CLOSED for the
-// notifications that were requested to be destroyed by the associated source.
+// that were destroyed as a result of a user action, SOURCE_CLOSED for the
+// notifications that were requested to be destroyed by the associated source,
+// and REPLACED for notifications that were destroyed as a consequence of a
+// newer version having replaced them.
var NotificationDestroyedReason = {
EXPIRED: 1,
DISMISSED: 2,
- SOURCE_CLOSED: 3
+ SOURCE_CLOSED: 3,
+ REPLACED: 4
};
// Message tray has its custom Urgency enumeration. LOW, NORMAL and CRITICAL
diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js
index 4d2be44ed..609e56253 100644
--- a/js/ui/notificationDaemon.js
+++ b/js/ui/notificationDaemon.js
@@ -690,7 +690,7 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
this._notificationPending = true;
if (this._notifications[notificationId])
- this._notifications[notificationId].destroy();
+ this._notifications[notificationId].destroy(MessageTray.NotificationDestroyedReason.REPLACED);
let notification = this._createNotification(notificationParams);
notification.connect('destroy', () => {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]