Linux: window.focus/window.show triggers useless "Signal is ready" on every notification, when using GNOME
- I have searched open and closed issues for duplicates
Bug Description
Mutter/GNOME Shell have, since forever, prevented focus stealing. Instead, a notification of "App is ready" is shown, this is helpful when you start an app, and go do something else while it opens (think your browser, or -hah- an electron app). Also super helpful to avoid the exasperation of apps stealing focus for whatever reason.
However, whenever Signal sends a message notification, it seems to try to raise the window when "Draw attention to this window" is checked. This causes any incoming message's notification to be immediately obstructed by a "Signal is ready" notification (see screenshot).
https://github.com/signalapp/Signal-Desktop/blob/a173a9b33ff8dccbe02b9ad2d5e268ca3b036563/js/notifications.js#L158-L165 https://github.com/signalapp/Signal-Desktop/blob/7095e070eb540d2ea2af42b489e3d6c2a4b8175e/main.js#L124-L146
I think .focus() vs .show() did not make a difference for me, but I could be misremembering.
Arguably, you could say that it is mutter's choice to interpret focus/show as an event itself (and turn it into a notification), but I would say that Signal still shouldn't be showing/focusing the window on every notification. If the goal is/was to trigger a platform's animation/behavior (blinking, bouncing, etc), then I would say that Linux (GNOME) is worthy of the same consideration.
If you would like to keep it simple, you could just default the pref to false on platform=Linux. Otherwise, you can special case GNOME (there's an env var: XDG_CURRENT_DESKTOP). Note that default GNOME has no tray or window list, and no bouncing/blinking/etc behavior except the "is ready" notification.
- Reference to mutter discussion, not super fruitful: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/358
Steps to Reproduce
- Receive a notification
- See your message notification immediately get obscured by "Signal is ready"
- Be sad
Actual Result:
Notifications are obscured because of the window.focus()/window.show() triggered with each notification
Expected Result:
Signal triggers only one notification (the message one)
Screenshots

Platform Info
Signal Version:
1.39.6, through Flatpak
Operating System:
Debian sid + GNOME 3.38 (can reproduce on HEAD, too)
Source: signalapp/Signal-Desktop