messageTray: hide the summary box pointer if all its notifications are destroyed
This ensures that we don't show an animation of an empty blob being hidden when clicking an action button causes the notification to be destroyed. https://bugzilla.gnome.org/show_bug.cgi?id=658525
This commit is contained in:
parent
f7fb6b2160
commit
9496b64c86
@ -2237,7 +2237,7 @@ MessageTray.prototype = {
|
|||||||
_showSummaryBoxPointer: function() {
|
_showSummaryBoxPointer: function() {
|
||||||
this._summaryBoxPointerItem = this._clickedSummaryItem;
|
this._summaryBoxPointerItem = this._clickedSummaryItem;
|
||||||
this._summaryBoxPointerContentUpdatedId = this._summaryBoxPointerItem.connect('content-updated',
|
this._summaryBoxPointerContentUpdatedId = this._summaryBoxPointerItem.connect('content-updated',
|
||||||
Lang.bind(this, this._adjustSummaryBoxPointerPosition));
|
Lang.bind(this, this._onSummaryBoxPointerContentUpdated));
|
||||||
this._summaryBoxPointerDoneDisplayingId = this._summaryBoxPointerItem.connect('done-displaying-content',
|
this._summaryBoxPointerDoneDisplayingId = this._summaryBoxPointerItem.connect('done-displaying-content',
|
||||||
Lang.bind(this, this._escapeTray));
|
Lang.bind(this, this._escapeTray));
|
||||||
if (this._clickedSummaryItemMouseButton == 1) {
|
if (this._clickedSummaryItemMouseButton == 1) {
|
||||||
@ -2272,6 +2272,13 @@ MessageTray.prototype = {
|
|||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_onSummaryBoxPointerContentUpdated: function() {
|
||||||
|
if (this._summaryBoxPointerItem.notificationStack.get_children().length == 0)
|
||||||
|
this._hideSummaryBoxPointer();
|
||||||
|
this._adjustSummaryBoxPointerPosition();
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
_adjustSummaryBoxPointerPosition: function() {
|
_adjustSummaryBoxPointerPosition: function() {
|
||||||
// The position of the arrow origin should be the same as center of this._clickedSummaryItem.actor
|
// The position of the arrow origin should be the same as center of this._clickedSummaryItem.actor
|
||||||
if (!this._clickedSummaryItem)
|
if (!this._clickedSummaryItem)
|
||||||
@ -2295,6 +2302,14 @@ MessageTray.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
_hideSummaryBoxPointer: function() {
|
_hideSummaryBoxPointer: function() {
|
||||||
|
// We should be sure to hide the box pointer if all notifications in it are destroyed while
|
||||||
|
// it is hiding, so that we don't show an an animation of an empty blob being hidden.
|
||||||
|
if (this._summaryBoxPointerState == State.HIDING &&
|
||||||
|
this._summaryBoxPointerItem.notificationStack.get_children().length == 0) {
|
||||||
|
this._summaryBoxPointer.actor.hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this._summaryBoxPointerState = State.HIDING;
|
this._summaryBoxPointerState = State.HIDING;
|
||||||
// Unset this._clickedSummaryItem if we are no longer showing the summary
|
// Unset this._clickedSummaryItem if we are no longer showing the summary
|
||||||
if (this._summaryState != State.SHOWN)
|
if (this._summaryState != State.SHOWN)
|
||||||
|
Loading…
Reference in New Issue
Block a user