diff --git a/Source/Editor/Utilities/Utils.cs b/Source/Editor/Utilities/Utils.cs
index 6de74e6ea..95ad9ade5 100644
--- a/Source/Editor/Utilities/Utils.cs
+++ b/Source/Editor/Utilities/Utils.cs
@@ -1646,7 +1646,8 @@ namespace FlaxEditor.Utilities
///
/// The source code.
/// The window title.
- public static void ShowSourceCodeWindow(string source, string title)
+ /// The context control used to show source code window popup in a proper location.
+ public static void ShowSourceCodeWindow(string source, string title, Control control = null)
{
if (string.IsNullOrEmpty(source))
{
@@ -1659,8 +1660,9 @@ namespace FlaxEditor.Utilities
settings.AllowMaximize = false;
settings.AllowMinimize = false;
settings.HasSizingFrame = false;
- settings.StartPosition = WindowStartPosition.CenterScreen;
+ settings.StartPosition = WindowStartPosition.CenterParent;
settings.Size = new Vector2(500, 600) * Platform.DpiScale;
+ settings.Parent = control?.RootWindow?.Window ?? Editor.Instance.Windows.MainWindow;
settings.Title = title;
var dialog = Platform.CreateWindow(ref settings);
diff --git a/Source/Editor/Windows/Assets/MaterialWindow.cs b/Source/Editor/Windows/Assets/MaterialWindow.cs
index f49e6a79c..53d85f493 100644
--- a/Source/Editor/Windows/Assets/MaterialWindow.cs
+++ b/Source/Editor/Windows/Assets/MaterialWindow.cs
@@ -233,18 +233,14 @@ namespace FlaxEditor.Windows.Assets
// Toolstrip
_toolstrip.AddSeparator();
- _toolstrip.AddButton(editor.Icons.BracketsSlash32, () => ShowSourceCode(_asset)).LinkTooltip("Show generated shader source code");
+ _toolstrip.AddButton(editor.Icons.BracketsSlash32, ShowSourceCode).LinkTooltip("Show generated shader source code");
_toolstrip.AddButton(editor.Icons.Docs32, () => Platform.OpenUrl(Utilities.Constants.DocsUrl + "manual/graphics/materials/index.html")).LinkTooltip("See documentation to learn more");
}
- ///
- /// Shows the material source code window.
- ///
- /// The material asset.
- public static void ShowSourceCode(Material material)
+ private void ShowSourceCode()
{
- var source = Editor.GetShaderSourceCode(material);
- Utilities.Utils.ShowSourceCodeWindow(source, "Material Source");
+ var source = Editor.GetShaderSourceCode(_asset);
+ Utilities.Utils.ShowSourceCodeWindow(source, "Material Source", this);
}
///
diff --git a/Source/Editor/Windows/Assets/ParticleEmitterWindow.cs b/Source/Editor/Windows/Assets/ParticleEmitterWindow.cs
index 17b5a928d..ab61a9d68 100644
--- a/Source/Editor/Windows/Assets/ParticleEmitterWindow.cs
+++ b/Source/Editor/Windows/Assets/ParticleEmitterWindow.cs
@@ -139,18 +139,14 @@ namespace FlaxEditor.Windows.Assets
// Toolstrip
_toolstrip.AddSeparator();
- _toolstrip.AddButton(editor.Icons.BracketsSlash32, () => ShowSourceCode(_asset)).LinkTooltip("Show generated shader source code");
+ _toolstrip.AddButton(editor.Icons.BracketsSlash32, ShowSourceCode).LinkTooltip("Show generated shader source code");
_toolstrip.AddButton(editor.Icons.Docs32, () => Platform.OpenUrl(Utilities.Constants.DocsUrl + "manual/particles/index.html")).LinkTooltip("See documentation to learn more");
}
- ///
- /// Shows the ParticleEmitter source code window.
- ///
- /// The ParticleEmitter asset.
- public static void ShowSourceCode(ParticleEmitter particleEmitter)
+ private void ShowSourceCode()
{
- var source = Editor.GetShaderSourceCode(particleEmitter);
- Utilities.Utils.ShowSourceCodeWindow(source, "Particle Emitter GPU Simulation Source");
+ var source = Editor.GetShaderSourceCode(_asset);
+ Utilities.Utils.ShowSourceCodeWindow(source, "Particle Emitter GPU Simulation Source", this);
}
///