messageTray: update the SummaryItem's label based on Source title changes

https://bugzilla.gnome.org/show_bug.cgi?id=643513
This commit is contained in:
Jasper St. Pierre 2011-06-08 02:27:57 -04:00
parent 60c88612f7
commit 890efa787a
3 changed files with 16 additions and 3 deletions

View File

@ -893,6 +893,11 @@ Source.prototype = {
this.isTransient = isTransient;
},
setTitle: function(newTitle) {
this.title = newTitle;
this.emit('title-changed');
},
// Called to create a new icon actor (of size this.ICON_SIZE).
// Must be overridden by the subclass if you do not pass icons
// explicitly to the Notification() constructor.
@ -995,6 +1000,11 @@ SummaryItem.prototype = {
this._sourceTitleBin.child = this._sourceTitle;
this._sourceTitleBin.width = 0;
this.source.connect('title-changed',
Lang.bind(this, function() {
this._sourceTitle.text = source.title;
}));
this._sourceBox.add(this._sourceIcon, { y_fill: false });
this._sourceBox.add(this._sourceTitleBin, { expand: true, y_fill: false });
this.actor.child = this._sourceBox;

View File

@ -165,8 +165,11 @@ NotificationDaemon.prototype = {
// with a transient one from the same sender, so we
// always create a new source object for new transient notifications
// and never add it to this._sources .
if (!isForTransientNotification && this._sources[pid])
return this._sources[pid];
if (!isForTransientNotification && this._sources[pid]) {
let source = this._sources[pid];
source.setTitle(title);
return source;
}
let source = new Source(title, pid);
source.setTransient(isForTransientNotification);

View File

@ -241,7 +241,7 @@ Source.prototype = {
_updateAlias: function() {
let oldAlias = this.title;
this.title = this._contact.get_alias();
this.setTitle(this._contact.get_alias());
this._notification.appendAliasChange(oldAlias, this.title);
this.pushNotification(this._notification);
},