[gnome-shell] MessageTray: don't clear the banner text when adding to the body



commit 07676d483d1dce46154f36e3cebc54c1e9ff8d86
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Thu Feb 14 17:12:26 2013 +0100

    MessageTray: don't clear the banner text when adding to the body
    
    ScreenShield uses Notification.bannerBodyText to fill the body of detailed
    notifications, so use a separate boolean property to indicate it was already
    added to the body.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693822

 js/ui/messageTray.js |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 4c8c133..f878481 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -359,6 +359,7 @@ const Notification = new Lang.Class({
         this._customContent = false;
         this.bannerBodyText = null;
         this.bannerBodyMarkup = false;
+        this._bannerBodyAdded = false;
         this._titleFitsInBannerMode = true;
         this._titleDirection = Clutter.TextDirection.DEFAULT;
         this._spacing = 0;
@@ -521,6 +522,7 @@ const Notification = new Lang.Class({
         // not fitting fully in the single-line mode.
         this.bannerBodyText = this._customContent ? null : banner;
         this.bannerBodyMarkup = params.bannerMarkup;
+        this._bannerBodyAdded = false;
 
         banner = banner ? banner.replace(/\n/g, '  ') : '';
 
@@ -602,10 +604,9 @@ const Notification = new Lang.Class({
     },
 
     _addBannerBody: function() {
-        if (this.bannerBodyText) {
-            let text = this.bannerBodyText;
-            this.bannerBodyText = null;
-            this.addBody(text, this.bannerBodyMarkup);
+        if (this.bannerBodyText && !this._bannerBodyAdded) {
+            this._bannerBodyAdded = true;
+            this.addBody(this.bannerBodyText, this.bannerBodyMarkup);
         }
     },
 
@@ -897,7 +898,7 @@ const Notification = new Lang.Class({
     },
 
     _canExpandContent: function() {
-        return this.bannerBodyText ||
+        return (this.bannerBodyText && !this._bannerBodyAdded) ||
                (!this._titleFitsInBannerMode && 
!this._table.has_style_class_name('multi-line-notification'));
     },
 


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