From 17ba5fa815760a55c1bf77ae279c874bc8ee0429 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Sun, 6 Oct 2019 19:54:45 +1000 Subject: [PATCH] Use FolderBrowserDialog on Unix instead of FolderBrowserEx --- BizHawk.Client.EmuHawk/config/PathConfig.cs | 30 ++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/PathConfig.cs b/BizHawk.Client.EmuHawk/config/PathConfig.cs index b8f438b543..04b5886de9 100644 --- a/BizHawk.Client.EmuHawk/config/PathConfig.cs +++ b/BizHawk.Client.EmuHawk/config/PathConfig.cs @@ -6,6 +6,7 @@ using System.Windows.Forms; using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Common; namespace BizHawk.Client.EmuHawk { @@ -218,15 +219,32 @@ namespace BizHawk.Client.EmuHawk system = null; } - var f = new FolderBrowserEx + DialogResult result; + string selectedPath; + if (OSTailoredCode.CurrentOS == OSTailoredCode.DistinctOS.Windows) { - Description = $"Set the directory for {name}", - SelectedPath = PathManager.MakeAbsolutePath(box.Text, system) - }; - var result = f.ShowDialog(); + var f = new FolderBrowserEx + { + Description = $"Set the directory for {name}", + SelectedPath = PathManager.MakeAbsolutePath(box.Text, system) + }; + result = f.ShowDialog(); + selectedPath = f.SelectedPath; + } + else + { + // FolderBrowserEx doesn't work in Mono for obvious reasons + var f = new FolderBrowserDialog + { + Description = $"Set the directory for {name}", + SelectedPath = PathManager.MakeAbsolutePath(box.Text, system) + }; + result = f.ShowDialog(); + selectedPath = f.SelectedPath; + } if (result == DialogResult.OK) { - box.Text = PathManager.TryMakeRelative(f.SelectedPath, system); + box.Text = PathManager.TryMakeRelative(selectedPath, system); } }