From 94e85f1079efa19afa6d2067f9281d4a037151e1 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Fri, 15 Jul 2022 22:26:08 +1000 Subject: [PATCH] Set `Form.Owner` to MainForm for Lua-made forms --- .../tools/Lua/Libraries/FormsLuaLibrary.cs | 3 +++ src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/FormsLuaLibrary.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/FormsLuaLibrary.cs index de417cad0f..c8ef03274f 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/FormsLuaLibrary.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/FormsLuaLibrary.cs @@ -17,6 +17,8 @@ namespace BizHawk.Client.EmuHawk public FormsLuaLibrary(IPlatformLuaLibEnv luaLibsImpl, ApiContainer apiContainer, Action logOutputCallback) : base(luaLibsImpl, apiContainer, logOutputCallback) {} + public Form MainForm { get; set; } + public override string Name => "forms"; private readonly List _luaForms = new List(); @@ -352,6 +354,7 @@ namespace BizHawk.Client.EmuHawk form.MaximizeBox = false; form.FormBorderStyle = FormBorderStyle.FixedDialog; form.Icon = SystemIcons.Application; + form.Owner = MainForm; form.Show(); form.FormClosed += (o, e) => diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs index 43210790e2..300557cf6d 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs @@ -96,6 +96,10 @@ namespace BizHawk.Client.EmuHawk consoleLib.Tools = _mainForm.Tools; _logToLuaConsoleCallback = consoleLib.Log; } + else if (instance is FormsLuaLibrary formsLib) + { + formsLib.MainForm = _mainForm; + } else if (instance is GuiLuaLibrary guiLib) { // emu lib may be null now, depending on order of ReflectionCache.Types, but definitely won't be null when this is called