From 131da5f52391c91f9446708f548a23d229a00934 Mon Sep 17 00:00:00 2001 From: Marina Zhurakhinskaya Date: Wed, 21 Sep 2011 16:46:08 -0400 Subject: [PATCH] telepathyClient: update the avatar correctly when it changes Previously, when the avatar changed, we would not update the summary icon for the source at all and would only update the notification icon when the next message was received. Instead, we should update both immediately upon recieving the signal that the avatar has changed. https://bugzilla.gnome.org/show_bug.cgi?id=659768 --- js/ui/messageTray.js | 2 ++ js/ui/telepathyClient.js | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index ef0d59395..d41fd7dc5 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -416,6 +416,7 @@ Notification.prototype = { _init: function(source, title, banner, params) { this.source = source; + this.title = title; this.urgency = Urgency.NORMAL; this.resident = false; // 'transient' is a reserved keyword in JS, so we have to use an alternate variable name @@ -538,6 +539,7 @@ Notification.prototype = { y_fill: false, y_align: St.Align.START }); + this.title = title; title = title ? _fixMarkup(title.replace(/\n/g, ' '), params.titleMarkup) : ''; this._titleLabel.clutter_text.set_markup('' + title + ''); diff --git a/js/ui/telepathyClient.js b/js/ui/telepathyClient.js index cf55b16c4..4bd5097f4 100644 --- a/js/ui/telepathyClient.js +++ b/js/ui/telepathyClient.js @@ -543,13 +543,6 @@ ChatSource.prototype = { createNotificationIcon: function() { this._iconBox = new St.Bin({ style_class: 'avatar-box' }); this._iconBox._size = this.ICON_SIZE; - - this._updateAvatarIcon(); - - return this._iconBox; - }, - - _updateAvatarIcon: function() { let textureCache = St.TextureCache.get_default(); let file = this._contact.get_avatar_file(); @@ -561,6 +554,13 @@ ChatSource.prototype = { icon_type: St.IconType.FULLCOLOR, icon_size: this._iconBox._size }); } + + return this._iconBox; + }, + + _updateAvatarIcon: function() { + this._setSummaryIcon(this.createNotificationIcon()); + this._notification.update(this._notification.title, null, { customContent: true, icon: this.createNotificationIcon() }); }, open: function(notification) {