unlockDialog: Add .critical CSS class to critical notifications
As per the latest lock screen mockups, critical notifications must have a more prominent, solid color. Add a .critical style class to critical notification bubbles, and make them darker. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/872
This commit is contained in:
parent
893bde0ca1
commit
2644f62318
@ -35,6 +35,8 @@
|
||||
background-color: transparentize($osd_bg_color,0.5);
|
||||
color: $osd_fg_color;
|
||||
border-radius: 4px;
|
||||
|
||||
&.critical { background-color: transparentize($osd_bg_color,0.1) }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,20 @@ var NotificationsBox = GObject.registerClass({
|
||||
source.narrowestPrivacyScope === MessageTray.PrivacyScope.SYSTEM;
|
||||
}
|
||||
|
||||
_updateSourceBoxStyle(source, obj, box) {
|
||||
let hasCriticalNotification =
|
||||
source.notifications.some(n => n.urgency === MessageTray.Urgency.CRITICAL);
|
||||
|
||||
if (hasCriticalNotification !== obj.hasCriticalNotification) {
|
||||
obj.hasCriticalNotification = hasCriticalNotification;
|
||||
|
||||
if (hasCriticalNotification)
|
||||
box.add_style_class_name('critical');
|
||||
else
|
||||
box.remove_style_class_name('critical');
|
||||
}
|
||||
}
|
||||
|
||||
_showSource(source, obj, box) {
|
||||
if (obj.detailed)
|
||||
[obj.titleLabel, obj.countLabel] = this._makeNotificationDetailedSource(source, box);
|
||||
@ -152,6 +166,8 @@ var NotificationsBox = GObject.registerClass({
|
||||
[obj.titleLabel, obj.countLabel] = this._makeNotificationSource(source, box);
|
||||
|
||||
box.visible = obj.visible && (source.unseenCount > 0);
|
||||
|
||||
this._updateSourceBoxStyle(source, obj, box);
|
||||
}
|
||||
|
||||
_sourceAdded(tray, source, initial) {
|
||||
@ -165,6 +181,7 @@ var NotificationsBox = GObject.registerClass({
|
||||
sourceBox: null,
|
||||
titleLabel: null,
|
||||
countLabel: null,
|
||||
hasCriticalNotification: false,
|
||||
};
|
||||
|
||||
obj.sourceBox = new St.BoxLayout({
|
||||
|
Loading…
Reference in New Issue
Block a user