From 5099614dbe313de7c6dc1fb06953f35a01f1aca5 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Mon, 7 Sep 2020 22:43:54 +1000 Subject: [PATCH] Disable "Stay on Top" setting of IToolFormAutoConfigs on Unix --- src/BizHawk.Client.EmuHawk/tools/ToolManager.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/tools/ToolManager.cs b/src/BizHawk.Client.EmuHawk/tools/ToolManager.cs index 16e6a65d8c..2c7f143f3a 100644 --- a/src/BizHawk.Client.EmuHawk/tools/ToolManager.cs +++ b/src/BizHawk.Client.EmuHawk/tools/ToolManager.cs @@ -224,12 +224,21 @@ namespace BizHawk.Client.EmuHawk private void RefreshSettings(Form form, ToolStripItemCollection menu, ToolDialogSettings settings, int idx) { ((ToolStripMenuItem)menu[idx + 0]).Checked = settings.SaveWindowPosition; - ((ToolStripMenuItem)menu[idx + 1]).Checked = settings.TopMost; + var stayOnTopItem = (ToolStripMenuItem)menu[idx + 1]; + stayOnTopItem.Checked = settings.TopMost; + if (OSTailoredCode.IsUnixHost) + { + // This is the job of the WM, and is usually exposed in window decorations or a context menu on them + stayOnTopItem.Enabled = false; + stayOnTopItem.Visible = false; + } + else + { + form.TopMost = settings.TopMost; + } ((ToolStripMenuItem)menu[idx + 2]).Checked = settings.FloatingWindow; ((ToolStripMenuItem)menu[idx + 3]).Checked = settings.AutoLoad; - form.TopMost = settings.TopMost; - // do we need to do this OnShown() as well? form.Owner = settings.FloatingWindow ? null : _owner; }