messageTray: Don't close the tray when responding to a notification stack

This is against the designed behavior.
This commit is contained in:
Jasper St. Pierre 2013-08-01 23:57:21 -04:00
parent e818ddf152
commit 6521951e82

View File

@ -1409,7 +1409,7 @@ const SummaryItem = new Lang.Class({
this._closeButton = Util.makeCloseButton(); this._closeButton = Util.makeCloseButton();
this._closeButton.connect('clicked', Lang.bind(this, function() { this._closeButton.connect('clicked', Lang.bind(this, function() {
source.destroy(); source.destroy();
source.emit('done-displaying-content'); source.emit('done-displaying-content', false);
})); }));
this.notificationStackWidget.add_actor(this._closeButton); this.notificationStackWidget.add_actor(this._closeButton);
this._stackedNotifications = []; this._stackedNotifications = [];
@ -1460,7 +1460,6 @@ const SummaryItem = new Lang.Class({
let stackedNotification = this._stackedNotifications[i]; let stackedNotification = this._stackedNotifications[i];
let notification = stackedNotification.notification; let notification = stackedNotification.notification;
notification.collapseCompleted(); notification.collapseCompleted();
notification.disconnect(stackedNotification.notificationDoneDisplayingId);
notification.disconnect(stackedNotification.notificationDestroyedId); notification.disconnect(stackedNotification.notificationDestroyedId);
if (notification.actor.get_parent() == this.notificationStack) if (notification.actor.get_parent() == this.notificationStack)
this.notificationStack.remove_actor(notification.actor); this.notificationStack.remove_actor(notification.actor);
@ -1478,7 +1477,6 @@ const SummaryItem = new Lang.Class({
_appendNotificationToStack: function(notification) { _appendNotificationToStack: function(notification) {
let stackedNotification = {}; let stackedNotification = {};
stackedNotification.notification = notification; stackedNotification.notification = notification;
stackedNotification.notificationDoneDisplayingId = notification.connect('done-displaying', Lang.bind(this, this._notificationDoneDisplaying));
stackedNotification.notificationDestroyedId = notification.connect('destroy', Lang.bind(this, this._notificationDestroyed)); stackedNotification.notificationDestroyedId = notification.connect('destroy', Lang.bind(this, this._notificationDestroyed));
this._stackedNotifications.push(stackedNotification); this._stackedNotifications.push(stackedNotification);
if (!this.source.isChat) if (!this.source.isChat)
@ -1505,15 +1503,10 @@ const SummaryItem = new Lang.Class({
this.emit('content-updated'); this.emit('content-updated');
}, },
_notificationDoneDisplaying: function() {
this.source.emit('done-displaying-content', true);
},
_notificationDestroyed: function(notification) { _notificationDestroyed: function(notification) {
for (let i = 0; i < this._stackedNotifications.length; i++) { for (let i = 0; i < this._stackedNotifications.length; i++) {
if (this._stackedNotifications[i].notification == notification) { if (this._stackedNotifications[i].notification == notification) {
let stackedNotification = this._stackedNotifications[i]; let stackedNotification = this._stackedNotifications[i];
notification.disconnect(stackedNotification.notificationDoneDisplayingId);
notification.disconnect(stackedNotification.notificationDestroyedId); notification.disconnect(stackedNotification.notificationDestroyedId);
this._stackedNotifications.splice(i, 1); this._stackedNotifications.splice(i, 1);
if (notification.actor.get_parent() == this.notificationStack) if (notification.actor.get_parent() == this.notificationStack)