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
This commit is contained in:
Marina Zhurakhinskaya 2011-09-21 16:46:08 -04:00
parent 7c6144450a
commit 131da5f523
2 changed files with 9 additions and 7 deletions

View File

@ -416,6 +416,7 @@ Notification.prototype = {
_init: function(source, title, banner, params) { _init: function(source, title, banner, params) {
this.source = source; this.source = source;
this.title = title;
this.urgency = Urgency.NORMAL; this.urgency = Urgency.NORMAL;
this.resident = false; this.resident = false;
// 'transient' is a reserved keyword in JS, so we have to use an alternate variable name // '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_fill: false,
y_align: St.Align.START }); y_align: St.Align.START });
this.title = title;
title = title ? _fixMarkup(title.replace(/\n/g, ' '), params.titleMarkup) : ''; title = title ? _fixMarkup(title.replace(/\n/g, ' '), params.titleMarkup) : '';
this._titleLabel.clutter_text.set_markup('<b>' + title + '</b>'); this._titleLabel.clutter_text.set_markup('<b>' + title + '</b>');

View File

@ -543,13 +543,6 @@ ChatSource.prototype = {
createNotificationIcon: function() { createNotificationIcon: function() {
this._iconBox = new St.Bin({ style_class: 'avatar-box' }); this._iconBox = new St.Bin({ style_class: 'avatar-box' });
this._iconBox._size = this.ICON_SIZE; this._iconBox._size = this.ICON_SIZE;
this._updateAvatarIcon();
return this._iconBox;
},
_updateAvatarIcon: function() {
let textureCache = St.TextureCache.get_default(); let textureCache = St.TextureCache.get_default();
let file = this._contact.get_avatar_file(); let file = this._contact.get_avatar_file();
@ -561,6 +554,13 @@ ChatSource.prototype = {
icon_type: St.IconType.FULLCOLOR, icon_type: St.IconType.FULLCOLOR,
icon_size: this._iconBox._size }); 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) { open: function(notification) {