diff options
Diffstat (limited to 'modules/mono')
4 files changed, 22 insertions, 17 deletions
diff --git a/modules/mono/editor/GodotTools/GodotTools/Build/BuildProblemsView.cs b/modules/mono/editor/GodotTools/GodotTools/Build/BuildProblemsView.cs index 93b5a6c7f8..d62eb3ce9e 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Build/BuildProblemsView.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Build/BuildProblemsView.cs @@ -308,14 +308,14 @@ namespace GodotTools.Build return false; string searchText = _searchBox.Text; - if (!string.IsNullOrEmpty(searchText) && - (!diagnostic.Message.Contains(searchText, StringComparison.OrdinalIgnoreCase) || - !(diagnostic.File?.Contains(searchText, StringComparison.OrdinalIgnoreCase) ?? false))) - { - return false; - } - - return true; + if (string.IsNullOrEmpty(searchText)) + return true; + if (diagnostic.Message.Contains(searchText, StringComparison.OrdinalIgnoreCase)) + return true; + if (diagnostic.File?.Contains(searchText, StringComparison.OrdinalIgnoreCase) ?? false) + return true; + + return false; } private Color? GetProblemItemColor(BuildDiagnostic diagnostic) diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/CSharpInstanceBridge.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/CSharpInstanceBridge.cs index 16be494d99..7b6b35b68f 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/CSharpInstanceBridge.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/CSharpInstanceBridge.cs @@ -94,7 +94,7 @@ namespace Godot.Bridge // Signals if (godotObject.HasGodotClassSignal(CustomUnsafe.AsRef(name))) { - godot_signal signal = new godot_signal(*name, godotObject.GetInstanceId()); + godot_signal signal = new godot_signal(NativeFuncs.godotsharp_string_name_new_copy(*name), godotObject.GetInstanceId()); *outRet = VariantUtils.CreateFromSignalTakingOwnershipOfDisposableValue(signal); return godot_bool.True; } @@ -102,7 +102,7 @@ namespace Godot.Bridge // Methods if (godotObject.HasGodotClassMethod(CustomUnsafe.AsRef(name))) { - godot_callable method = new godot_callable(*name, godotObject.GetInstanceId()); + godot_callable method = new godot_callable(NativeFuncs.godotsharp_string_name_new_copy(*name), godotObject.GetInstanceId()); *outRet = VariantUtils.CreateFromCallableTakingOwnershipOfDisposableValue(method); return godot_bool.True; } diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs index 968afa664b..e344dc84c7 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs @@ -310,13 +310,6 @@ namespace Godot.Bridge _pathTypeBiMap.Add(scriptPathAttr.Path, type); - // This method may be called before initialization. - if (NativeFuncs.godotsharp_dotnet_module_is_initialized().ToBool() && Engine.IsEditorHint()) - { - using godot_string scriptPath = Marshaling.ConvertStringToNative(scriptPathAttr.Path); - NativeFuncs.godotsharp_internal_editor_file_system_update_file(scriptPath); - } - if (AlcReloadCfg.IsAlcReloadingEnabled) { AddTypeForAlcReloading(type); @@ -366,6 +359,16 @@ namespace Godot.Bridge } } } + + // This method may be called before initialization. + if (NativeFuncs.godotsharp_dotnet_module_is_initialized().ToBool() && Engine.IsEditorHint()) + { + foreach (var scriptPath in _pathTypeBiMap.Paths) + { + using godot_string nativeScriptPath = Marshaling.ConvertStringToNative(scriptPath); + NativeFuncs.godotsharp_internal_editor_file_system_update_file(nativeScriptPath); + } + } } [UnmanagedCallersOnly] diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs index a58f6849ad..7fa3498b92 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs @@ -61,6 +61,8 @@ public static partial class ScriptManagerBridge private System.Collections.Generic.Dictionary<string, Type> _pathTypeMap = new(); private System.Collections.Generic.Dictionary<Type, string> _typePathMap = new(); + public System.Collections.Generic.IEnumerable<string> Paths => _pathTypeMap.Keys; + public void Add(string scriptPath, Type scriptType) { _pathTypeMap.Add(scriptPath, scriptType); |
