notificationDaemon: Fix icon-choosing logic
'image-data' (or 'image-path') should take precedence over 'app-icon', even when both are sent by the application (e.g. Google Chrome). Fixes #3616. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1616>
This commit is contained in:
parent
6ae49092c1
commit
779e66ae88
@ -240,19 +240,13 @@ var FdoNotificationDaemon = class FdoNotificationDaemon {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let gicon = this._iconForNotificationData(icon);
|
// 'image-data' (or 'image-path') takes precedence over 'app-icon'.
|
||||||
let gimage = this._imageForNotificationData(hints);
|
let gicon = this._imageForNotificationData(hints);
|
||||||
|
|
||||||
// If an icon is not specified, we use 'image-data' or 'image-path' hint for an icon
|
if (!gicon)
|
||||||
// and don't show a large image. There are currently many applications that use
|
gicon = this._iconForNotificationData(icon);
|
||||||
// notify_notification_set_icon_from_pixbuf() from libnotify, which in turn sets
|
|
||||||
// the 'image-data' hint. These applications don't typically pass in 'app_icon'
|
if (!gicon)
|
||||||
// argument to Notify() and actually expect the pixbuf to be shown as an icon.
|
|
||||||
// So the logic here does the right thing for this case. If both an icon and either
|
|
||||||
// one of 'image-data' or 'image-path' are specified, the icon and takes precedence.
|
|
||||||
if (!gicon && gimage)
|
|
||||||
gicon = gimage;
|
|
||||||
else if (!gicon)
|
|
||||||
gicon = this._fallbackIconForNotificationData(hints);
|
gicon = this._fallbackIconForNotificationData(hints);
|
||||||
|
|
||||||
notification.update(summary, body, { gicon,
|
notification.update(summary, body, { gicon,
|
||||||
|
Loading…
Reference in New Issue
Block a user