Browse Source

Merge pull request #78928 from neikeq/issue-78913

C#: Fix NodePaths completion error for not calling from main thread
Rémi Verschelde 2 years ago
parent
commit
e044e13d5a
1 changed files with 5 additions and 2 deletions
  1. 5 2
      modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs

+ 5 - 2
modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs

@@ -385,9 +385,12 @@ namespace GodotTools.Ides
                 // However, it doesn't fix resource loading if the rest of the path is also case insensitive.
                 string scriptFileLocalized = FsPathUtils.LocalizePathWithCaseChecked(request.ScriptFile);
 
+                // The node API can only be called from the main thread.
+                await Godot.Engine.GetMainLoop().ToSignal(Godot.Engine.GetMainLoop(), "process_frame");
+
                 var response = new CodeCompletionResponse { Kind = request.Kind, ScriptFile = request.ScriptFile };
-                response.Suggestions = await Task.Run(() =>
-                    Internal.CodeCompletionRequest(response.Kind, scriptFileLocalized ?? request.ScriptFile));
+                response.Suggestions = Internal.CodeCompletionRequest(response.Kind,
+                    scriptFileLocalized ?? request.ScriptFile);
                 return response;
             }
         }