dnd: Handle dragActorSource getting destroyed
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2318>
This commit is contained in:
parent
628866f7d2
commit
de08ec915f
@ -367,6 +367,10 @@ var _Draggable = class _Draggable extends Signals.EventEmitter {
|
|||||||
y = stageY - this._dragActor.height / 2;
|
y = stageY - this._dragActor.height / 2;
|
||||||
}
|
}
|
||||||
this._dragActor.set_position(x, y);
|
this._dragActor.set_position(x, y);
|
||||||
|
|
||||||
|
this._dragActorSourceDestroyId = this._dragActorSource.connect('destroy', () => {
|
||||||
|
this._dragActorSource = null;
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
this._dragActorSource = this.actor;
|
this._dragActorSource = this.actor;
|
||||||
}
|
}
|
||||||
@ -799,6 +803,11 @@ var _Draggable = class _Draggable extends Signals.EventEmitter {
|
|||||||
this._dragOrigParent = null;
|
this._dragOrigParent = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._dragActorSource) {
|
||||||
|
this._dragActorSource.disconnect(this._dragActorSourceDestroyId);
|
||||||
|
this._dragActorSource = null;
|
||||||
|
}
|
||||||
|
|
||||||
this._dragState = DragState.INIT;
|
this._dragState = DragState.INIT;
|
||||||
currentDraggable = null;
|
currentDraggable = null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user