diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs
index 0540e9d..5460f58 100644
--- a/Bloxstrap/App.xaml.cs
+++ b/Bloxstrap/App.xaml.cs
@@ -204,13 +204,13 @@ namespace Bloxstrap
if (!IsFirstRun)
ShouldSaveConfigs = true;
- if (Mutex.TryOpenExisting("ROBLOX_singletonMutex", out var _))
+ if (Settings.Prop.ConfirmLaunches && Mutex.TryOpenExisting("ROBLOX_singletonMutex", out var _))
{
- var result = Frontend.ShowMessageBox(
- "Roblox is currently running, and launching another instance will close it. Are you sure you want to continue launching?",
- MessageBoxImage.Warning,
- MessageBoxButton.YesNo
- );
+ // this currently doesn't work very well since it relies on checking the existence of the singleton mutex
+ // which often hangs around for a few seconds after the window closes
+ // it would be better to have this rely on the activity tracker when we implement IPC in the planned refactoring
+
+ var result = Frontend.ShowMessageBox(Bloxstrap.Resources.Strings.Bootstrapper_ConfirmLaunch, MessageBoxImage.Warning, MessageBoxButton.YesNo);
if (result != MessageBoxResult.Yes)
{
diff --git a/Bloxstrap/Models/Settings.cs b/Bloxstrap/Models/Settings.cs
index 79bac69..9c6b082 100644
--- a/Bloxstrap/Models/Settings.cs
+++ b/Bloxstrap/Models/Settings.cs
@@ -12,6 +12,7 @@ namespace Bloxstrap.Models
public Theme Theme { get; set; } = Theme.Default;
public bool CheckForUpdates { get; set; } = true;
public bool CreateDesktopIcon { get; set; } = true;
+ public bool ConfirmLaunches { get; set; } = false;
// channel configuration
public string Channel { get; set; } = RobloxDeployment.DefaultChannel;
diff --git a/Bloxstrap/Resources/Strings.Designer.cs b/Bloxstrap/Resources/Strings.Designer.cs
index 9dbc005..d8d9154 100644
--- a/Bloxstrap/Resources/Strings.Designer.cs
+++ b/Bloxstrap/Resources/Strings.Designer.cs
@@ -87,6 +87,15 @@ namespace Bloxstrap.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Roblox is currently running, and launching another instance will close it. Are you sure you want to continue launching?.
+ ///
+ public static string Bootstrapper_ConfirmLaunch {
+ get {
+ return ResourceManager.GetString("Bootstrapper.ConfirmLaunch", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to It's possible that something is preventing Bloxstrap from connecting to the internet. Please check and try again..
///
@@ -1634,6 +1643,24 @@ namespace Bloxstrap.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Prevent against closures of your existing game from accidentally launching another one..
+ ///
+ public static string Menu_Behaviour_ConfirmLaunches_Description {
+ get {
+ return ResourceManager.GetString("Menu.Behaviour.ConfirmLaunches.Description", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Prompt to confirm when launching another Roblox instance.
+ ///
+ public static string Menu_Behaviour_ConfirmLaunches_Title {
+ get {
+ return ResourceManager.GetString("Menu.Behaviour.ConfirmLaunches.Title", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Bloxstrap will place an icon on the desktop that launches Roblox the next time it launches..
///
diff --git a/Bloxstrap/Resources/Strings.resx b/Bloxstrap/Resources/Strings.resx
index 77a7489..1e06c17 100644
--- a/Bloxstrap/Resources/Strings.resx
+++ b/Bloxstrap/Resources/Strings.resx
@@ -126,6 +126,9 @@
Bloxstrap was unable to auto-update to {0}. Please update it manually by downloading and running the latest release from the GitHub page.
+
+ Roblox is currently running, and launching another instance will close it. Are you sure you want to continue launching?
+
It's possible that something is preventing Bloxstrap from connecting to the internet. Please check and try again.
@@ -650,6 +653,12 @@ Would you like to upgrade your currently installed version?
Automatically update Bloxstrap
+
+ Prevent against closures of your existing game from accidentally launching another one.
+
+
+ Prompt to confirm when launching another Roblox instance
+
Bloxstrap will place an icon on the desktop that launches Roblox the next time it launches.
diff --git a/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml
index e9dcca8..9af6d43 100644
--- a/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml
+++ b/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml
@@ -43,5 +43,11 @@
+
+
+
+
diff --git a/Bloxstrap/UI/ViewModels/Menu/BehaviourViewModel.cs b/Bloxstrap/UI/ViewModels/Menu/BehaviourViewModel.cs
index 77040f2..00c286a 100644
--- a/Bloxstrap/UI/ViewModels/Menu/BehaviourViewModel.cs
+++ b/Bloxstrap/UI/ViewModels/Menu/BehaviourViewModel.cs
@@ -17,6 +17,12 @@
set => App.Settings.Prop.CheckForUpdates = value;
}
+ public bool ConfirmLaunches
+ {
+ get => App.Settings.Prop.ConfirmLaunches;
+ set => App.Settings.Prop.ConfirmLaunches = value;
+ }
+
public bool ForceRobloxReinstallation
{
// wouldnt it be better to check old version guids?