[gnome-shell/gbsneto/new-lock-screen-part2: 1/7] unlockDialog: Add .critical CSS class to critical notifications
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/new-lock-screen-part2: 1/7] unlockDialog: Add .critical CSS class to critical notifications
- Date: Mon, 10 Feb 2020 20:20:54 +0000 (UTC)
commit 95004184ed1b88cc4ef72ebc1ca6c8dfda259f5b
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Feb 5 11:58:57 2020 -0300
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
data/theme/gnome-shell-sass/widgets/_screen-shield.scss | 2 ++
js/ui/unlockDialog.js | 17 +++++++++++++++++
2 files changed, 19 insertions(+)
---
diff --git a/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
index a28ef27384..2c45589aca 100644
--- a/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
+++ b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
@@ -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) }
}
}
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index 3d864f24e9..2fc7941042 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -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({
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]