From 325755e1c3fc84941fa05349fda185cf4212edf3 Mon Sep 17 00:00:00 2001 From: Alessandro Bono Date: Sat, 14 Jan 2023 17:00:42 +0100 Subject: [PATCH] dash: Connect before destroying MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since commit 7bd98f3f5fb7e0d1220646b8a4ee7073534a8e8f 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: --- js/ui/dash.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/ui/dash.js b/js/ui/dash.js index d546ee255..1514d2999 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -831,10 +831,10 @@ var Dash = GObject.registerClass({ _clearDragPlaceholder() { if (this._dragPlaceholder) { this._animatingPlaceholdersCount++; - this._dragPlaceholder.animateOutAndDestroy(); this._dragPlaceholder.connect('destroy', () => { this._animatingPlaceholdersCount--; }); + this._dragPlaceholder.animateOutAndDestroy(); this._dragPlaceholder = null; } this._dragPlaceholderPos = -1;