[gnome-shell] notificationDaemon: Stop auto-dismissing on focus changes



commit 12a203a1db59dfc7a51a482e5bb2619aa0915db2
Author: Florian Müllner <fmuellner gnome org>
Date:   Sun Jun 12 18:27:34 2022 +0200

    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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2332>

 js/ui/notificationDaemon.js | 19 -------------------
 1 file changed, 19 deletions(-)
---
diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js
index 769c12245b..b2e325f722 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]));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]