Disconnect content-updated signal early
During the box pointer animation, other events can trigger an updateState, losing the information that the summary is hiding and thus never disconnecting the signals. Then, this stale connections can cause stacktraces, as they fire when summaryBoxPointerItem is null. https://bugzilla.gnome.org/show_bug.cgi?id=692693
This commit is contained in:
parent
85743ede7e
commit
cc60afa31a
@ -2613,6 +2613,20 @@ const MessageTray = new Lang.Class({
|
|||||||
|
|
||||||
_onSummaryBoxPointerUngrabbed: function() {
|
_onSummaryBoxPointerUngrabbed: function() {
|
||||||
this._summaryBoxPointerState = State.HIDING;
|
this._summaryBoxPointerState = State.HIDING;
|
||||||
|
|
||||||
|
if (this._summaryBoxPointerContentUpdatedId) {
|
||||||
|
this._summaryBoxPointerItem.disconnect(this._summaryBoxPointerContentUpdatedId);
|
||||||
|
this._summaryBoxPointerContentUpdatedId = 0;
|
||||||
|
}
|
||||||
|
if (this._summaryBoxPointerCloseClickedId != 0) {
|
||||||
|
this._summaryBoxPointerItem.closeButton.disconnect(this._summaryBoxPointerCloseClickedId);
|
||||||
|
this._summaryBoxPointerCloseClickedId = 0;
|
||||||
|
}
|
||||||
|
if (this._sourceDoneDisplayingId) {
|
||||||
|
this._summaryBoxPointerItem.source.disconnect(this._sourceDoneDisplayingId);
|
||||||
|
this._sourceDoneDisplayingId = 0;
|
||||||
|
}
|
||||||
|
|
||||||
this._unlock();
|
this._unlock();
|
||||||
|
|
||||||
if (this._summaryBoxPointerItem.source.notifications.length == 0) {
|
if (this._summaryBoxPointerItem.source.notifications.length == 0) {
|
||||||
@ -2635,14 +2649,6 @@ const MessageTray = new Lang.Class({
|
|||||||
|
|
||||||
this._summaryBoxPointerState = State.HIDDEN;
|
this._summaryBoxPointerState = State.HIDDEN;
|
||||||
this._summaryBoxPointer.bin.child = null;
|
this._summaryBoxPointer.bin.child = null;
|
||||||
this._summaryBoxPointerItem.disconnect(this._summaryBoxPointerContentUpdatedId);
|
|
||||||
this._summaryBoxPointerContentUpdatedId = 0;
|
|
||||||
if (this._summaryBoxPointerCloseClickedId != 0) {
|
|
||||||
this._summaryBoxPointerItem.closeButton.disconnect(this._summaryBoxPointerCloseClickedId);
|
|
||||||
this._summaryBoxPointerCloseClickedId = 0;
|
|
||||||
}
|
|
||||||
this._summaryBoxPointerItem.source.disconnect(this._sourceDoneDisplayingId);
|
|
||||||
this._summaryBoxPointerDoneDisplayingId = 0;
|
|
||||||
|
|
||||||
let sourceNotificationStackDoneShowing = null;
|
let sourceNotificationStackDoneShowing = null;
|
||||||
if (doneShowingNotificationStack) {
|
if (doneShowingNotificationStack) {
|
||||||
|
Loading…
Reference in New Issue
Block a user