From 1d484e22786efb244401b7a4011670e782fe7f6a Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Mon, 6 Aug 2012 19:02:12 +0200 Subject: [PATCH] ScreenSheild: make notification view scrollable Place a maximum height on the notification view, and show scrollbars if the list of persistent sources would overflow. https://bugzilla.gnome.org/show_bug.cgi?id=681143 --- data/theme/gnome-shell.css | 5 +++-- js/ui/screenShield.js | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css index 6d18bf140..44bf764eb 100644 --- a/data/theme/gnome-shell.css +++ b/data/theme/gnome-shell.css @@ -2228,12 +2228,13 @@ StButton.popup-menu-item:insensitive { } #screenShieldNotifications { - border-radius: 24px; + border-radius: 8px; background-color: rgba(0.0, 0.0, 0.0, 0.9); border: 2px solid #868686; + max-height: 500px; } -#screenShieldNotifications, .screen-shield-notifications-box { +.screen-shield-notifications-box { spacing: 8px; } diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 3684d03c3..b9de0fa30 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -77,17 +77,18 @@ const NotificationsBox = new Lang.Class({ _init: function() { this.actor = new St.BoxLayout({ vertical: true, - name: 'screenShieldNotifications', - margin_top: 20 - }); + name: 'screenShieldNotifications', + style_class: 'screen-shield-notifications-box' }); this._residentNotificationBox = new St.BoxLayout({ vertical: true, style_class: 'screen-shield-notifications-box' }); + let scrollView = new St.ScrollView({ x_fill: false, x_align: St.Align.MIDDLE }); this._persistentNotificationBox = new St.BoxLayout({ vertical: true, style_class: 'screen-shield-notifications-box' }); + scrollView.add_actor(this._persistentNotificationBox); this.actor.add(this._residentNotificationBox, { x_fill: true }); - this.actor.add(this._persistentNotificationBox, { x_fill: false, x_align: St.Align.MIDDLE }); + this.actor.add(scrollView, { x_fill: true, x_align: St.Align.MIDDLE }); this._items = []; Main.messageTray.getSummaryItems().forEach(Lang.bind(this, function(item) { @@ -172,7 +173,7 @@ const NotificationsBox = new Lang.Class({ this._residentNotificationBox.add(item.notificationStackView); } else { [obj.sourceBox, obj.countLabel] = this._makeNotificationSource(item.source); - this._persistentNotificationBox.add(obj.sourceBox); + this._persistentNotificationBox.add(obj.sourceBox, { x_fill: false, x_align: St.Align.MIDDLE }); } obj.contentUpdatedId = item.connect('content-updated', Lang.bind(this, this._onItemContentUpdated));