diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d76f815..0d6e32ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ * This issue only affected Fallout 3, Fallout NV and Skyrim LE * Added logging to determine which downloaded files cannot be hashed * This could occur in the downloading phase when installing a modlist when there are broken/corrupted files in the downloads folder +* Fixed Wabbajack crashing when double-clicking the browser window titlebar or URL +* Fixed Wabbajack always using explorer.exe instead of the default file browser #### Version - 3.7.0.0 - 6/21/2024 * Added Starfield support diff --git a/Wabbajack.App.Wpf/Util/UIUtils.cs b/Wabbajack.App.Wpf/Util/UIUtils.cs index 152de857..b4fc10ac 100644 --- a/Wabbajack.App.Wpf/Util/UIUtils.cs +++ b/Wabbajack.App.Wpf/Util/UIUtils.cs @@ -56,7 +56,6 @@ namespace Wabbajack } } - public static void OpenWebsite(Uri url) { Process.Start(new ProcessStartInfo("cmd.exe", $"/c start {url}") @@ -64,16 +63,23 @@ namespace Wabbajack CreateNoWindow = true, }); } - + public static void OpenFolder(AbsolutePath path) { - Process.Start(new ProcessStartInfo(KnownFolders.Windows.Combine("explorer.exe").ToString(), path.ToString()) + string folderPath = path.ToString(); + if (!folderPath.EndsWith(Path.DirectorySeparatorChar.ToString())) { - CreateNoWindow = true, + folderPath += Path.DirectorySeparatorChar.ToString(); + } + + Process.Start(new ProcessStartInfo() + { + FileName = folderPath, + UseShellExecute = true, + Verb = "open" }); } - public static AbsolutePath OpenFileDialog(string filter, string initialDirectory = null) { OpenFileDialog ofd = new OpenFileDialog(); diff --git a/Wabbajack.App.Wpf/View Models/Installers/MO2InstallerVM.cs b/Wabbajack.App.Wpf/View Models/Installers/MO2InstallerVM.cs index f9bc25a4..623381e0 100644 --- a/Wabbajack.App.Wpf/View Models/Installers/MO2InstallerVM.cs +++ b/Wabbajack.App.Wpf/View Models/Installers/MO2InstallerVM.cs @@ -77,7 +77,7 @@ namespace Wabbajack public void AfterInstallNavigation() { - Process.Start("explorer.exe", Location.TargetPath.ToString()); + UIUtils.OpenFolder(Location.TargetPath); } public async Task Install() diff --git a/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs b/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs index a77c5b78..d9fb6645 100644 --- a/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs +++ b/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs @@ -25,7 +25,6 @@ public partial class BrowserWindow : MetroWindow { InitializeComponent(); - _disposable = new CompositeDisposable(); _serviceProvider = serviceProvider; Browser = _serviceProvider.GetRequiredService(); @@ -43,7 +42,10 @@ public partial class BrowserWindow : MetroWindow private void UIElement_OnMouseDown(object sender, MouseButtonEventArgs e) { - base.DragMove(); + if (e.LeftButton == MouseButtonState.Pressed) + { + base.DragMove(); + } } private void BrowserWindow_OnActivated(object sender, EventArgs e) diff --git a/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs b/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs index 2135f5c0..13c14e6f 100644 --- a/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs +++ b/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs @@ -144,7 +144,10 @@ namespace Wabbajack private void UIElement_OnMouseDown(object sender, MouseButtonEventArgs e) { - this.DragMove(); + if (e.LeftButton == MouseButtonState.Pressed) + { + this.DragMove(); + } } }