[gnome-shell/wip/fmuellner/notification-redux: 125/128] calendar: Fix notification updates
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/fmuellner/notification-redux: 125/128] calendar: Fix notification updates
- Date: Tue, 17 Feb 2015 11:30:10 +0000 (UTC)
commit 25f8a1f6cab2dd5ad863a142003c58d0b2b28023
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Feb 17 04:39:56 2015 +0100
calendar: Fix notification updates
js/ui/calendar.js | 41 ++++++++++++++++++++++++++++++-----------
1 files changed, 30 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index c40be6b..1622f3e 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -974,10 +974,10 @@ const Message = new Lang.Class({
let titleBox = new St.BoxLayout();
contentBox.add_actor(titleBox);
- let title = title ? _fixMarkup(title.replace(/\n/g, ' '), false) : '';
this.titleLabel = new St.Label({ style_class: 'message-title',
- text: title, x_expand: true,
+ x_expand: true,
x_align: Clutter.ActorAlign.START });
+ this.setTitle(title);
titleBox.add_actor(this.titleLabel);
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
@@ -1015,12 +1015,21 @@ const Message = new Lang.Class({
this._secondaryBin.child = actor;
},
+ setTitle: function(text) {
+ let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
+ this.titleLabel.text = title;
+ },
+
+ setBody: function(text) {
+ this.bodyLabel.setMarkup(text || '', this._useBodyMarkup);
+ },
+
setUseBodyMarkup: function(enable) {
if (this._useBodyMarkup === enable)
return;
this._useBodyMarkup = enable;
if (this.bodyLabel)
- this.bodyLabel.setMarkup(this.bodyLabel.actor.text, enable);
+ this.setBody(this.bodyLabel.actor.text);
},
setActionArea: function(actor) {
@@ -1302,13 +1311,7 @@ const NotificationMessage = new Lang.Class({
this.setUseBodyMarkup(notification.bannerBodyMarkup);
this.parent(notification.title, notification.bannerBodyText);
- let icon;
- if (notification.gicon)
- icon = new St.Icon({ gicon: notification.gicon, icon_size: 48 });
- else
- icon = notification.source.createIcon(48);
-
- this.setIcon(icon);
+ this.setIcon(this._getIcon());
this.actor.connect('clicked', Lang.bind(this,
function() {
@@ -1319,11 +1322,27 @@ const NotificationMessage = new Lang.Class({
this._closed = true;
this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
}));
- this.notification.connect('destroy', Lang.bind(this,
+ notification.connect('destroy', Lang.bind(this,
function() {
if (!this._closed)
this.emit('close');
}));
+ this._updatedId = notification.connect('updated',
+ Lang.bind(this, this._onUpdated));
+ },
+
+ _getIcon: function() {
+ if (this.notification.gicon)
+ return new St.Icon({ gicon: this.notification.gicon, icon_size: 48 });
+ else
+ return this.notification.source.createIcon(48);
+ },
+
+ _onUpdated: function(n, clear) {
+ this.setIcon(this._getIcon());
+ this.setTitle(n.title);
+ this.setBody(n.bannerBodyText);
+ this.setUseBodyMarkup(n.bannerBodyMarkup);
},
canClear: function() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]