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. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258
This commit is contained in:
parent
80a7547129
commit
a98ed08a54
@ -50,12 +50,15 @@ var State = {
|
|||||||
// These reasons are useful when we destroy the notifications received through
|
// These reasons are useful when we destroy the notifications received through
|
||||||
// the notification daemon. We use EXPIRED for notifications that we dismiss
|
// the notification daemon. We use EXPIRED for notifications that we dismiss
|
||||||
// and the user did not interact with, DISMISSED for all other notifications
|
// 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
|
// 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.
|
// 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 = {
|
var NotificationDestroyedReason = {
|
||||||
EXPIRED: 1,
|
EXPIRED: 1,
|
||||||
DISMISSED: 2,
|
DISMISSED: 2,
|
||||||
SOURCE_CLOSED: 3
|
SOURCE_CLOSED: 3,
|
||||||
|
REPLACED: 4
|
||||||
};
|
};
|
||||||
|
|
||||||
// Message tray has its custom Urgency enumeration. LOW, NORMAL and CRITICAL
|
// Message tray has its custom Urgency enumeration. LOW, NORMAL and CRITICAL
|
||||||
|
@ -690,7 +690,7 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
|
|||||||
this._notificationPending = true;
|
this._notificationPending = true;
|
||||||
|
|
||||||
if (this._notifications[notificationId])
|
if (this._notifications[notificationId])
|
||||||
this._notifications[notificationId].destroy();
|
this._notifications[notificationId].destroy(MessageTray.NotificationDestroyedReason.REPLACED);
|
||||||
|
|
||||||
let notification = this._createNotification(notificationParams);
|
let notification = this._createNotification(notificationParams);
|
||||||
notification.connect('destroy', () => {
|
notification.connect('destroy', () => {
|
||||||
|
Loading…
Reference in New Issue
Block a user