dash: Connect before destroying
Since commit 7bd98f3f5f
animateOutAndDestroy() destroys
the placeholder right away when animations are disabled. Connect to the destroy signal
before calling the function.
This fixes the following error:
Gjs-CRITICAL **: 16:51:35.195: Object .Gjs_ui_dash_DragPlaceholderItem (0x55b9a946da20),
has been already disposed — impossible to connect to any signal on it. This might be
caused by the object having been destroyed from C code using something such as destroy(),
dispose(), or remove() vfuncs.
== Stack trace for context 0x55b9a70d08f0 ==
#0 7ffe161bd070 b resource:///org/gnome/shell/ui/dash.js:835 (df3d61d32e0 @ 98)
#1 7ffe161bd170 b resource:///org/gnome/shell/ui/dash.js:901 (df3d61d33d0 @ 779)
#2 7ffe161bd290 b resource:///org/gnome/shell/ui/dnd.js:562 (3d4da0cfd420 @ 909)
#3 7ffe161bd360 b self-hosted:1115 (3d4da0c7ef10 @ 407)
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2604>
This commit is contained in:
parent
771b3bada2
commit
325755e1c3
@ -831,10 +831,10 @@ var Dash = GObject.registerClass({
|
|||||||
_clearDragPlaceholder() {
|
_clearDragPlaceholder() {
|
||||||
if (this._dragPlaceholder) {
|
if (this._dragPlaceholder) {
|
||||||
this._animatingPlaceholdersCount++;
|
this._animatingPlaceholdersCount++;
|
||||||
this._dragPlaceholder.animateOutAndDestroy();
|
|
||||||
this._dragPlaceholder.connect('destroy', () => {
|
this._dragPlaceholder.connect('destroy', () => {
|
||||||
this._animatingPlaceholdersCount--;
|
this._animatingPlaceholdersCount--;
|
||||||
});
|
});
|
||||||
|
this._dragPlaceholder.animateOutAndDestroy();
|
||||||
this._dragPlaceholder = null;
|
this._dragPlaceholder = null;
|
||||||
}
|
}
|
||||||
this._dragPlaceholderPos = -1;
|
this._dragPlaceholderPos = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user