[gnome-shell/screen-shield-next: 8/9] ScreenSheild: make notification view scrollable



commit 1d484e22786efb244401b7a4011670e782fe7f6a
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Mon Aug 6 19:02:12 2012 +0200

    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 6d18bf1..44bf764 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 3684d03..b9de0fa 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));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]