From 12a203a1db59dfc7a51a482e5bb2619aa0915db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 12 Jun 2022 18:27:34 +0200 Subject: [PATCH] notificationDaemon: Stop auto-dismissing on focus changes This behavior dates back all the way to the original gnome-shell release, and it did make sense at the time: - we were first to make notifications persistent instead of closing them after a timeout; apps were therefore used to treat notifications as fire-and-forget instead of closing them when no longer relevant - neither web notifications not portals did exist yet, so the D-Bus API was only used directly, instead of as a backend for other APIs; as a result, focusing the app was more likely than not to put the source of the event that the user was notified about into view Nowadays both persistent notifications and web notifications are wide-spread, so the original reasons no longer apply. This change helps web notifications in particular, as it reduces the differences between XDG and portal-based implementations. Part-of: --- js/ui/notificationDaemon.js | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index 769c12245..b2e325f72 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -34,11 +34,6 @@ var FdoNotificationDaemon = class FdoNotificationDaemon { this._notifications = {}; this._nextNotificationId = 1; - - Shell.WindowTracker.get_default().connect('notify::focus-app', - this._onFocusAppChanged.bind(this)); - Main.overview.connect('hidden', - this._onFocusAppChanged.bind(this)); } _imageForNotificationData(hints) { @@ -326,20 +321,6 @@ var FdoNotificationDaemon = class FdoNotificationDaemon { ]; } - _onFocusAppChanged() { - let tracker = Shell.WindowTracker.get_default(); - if (!tracker.focus_app) - return; - - for (let i = 0; i < this._sources.length; i++) { - let source = this._sources[i]; - if (source.app == tracker.focus_app) { - source.destroyNonResidentNotifications(); - return; - } - } - } - _emitNotificationClosed(id, reason) { this._dbusImpl.emit_signal('NotificationClosed', GLib.Variant.new('(uu)', [id, reason]));