From 4d9a0ee4108abcdb6a858183cd912bf91fbcec55 Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Fri, 30 Aug 2024 18:51:00 +0100 Subject: [PATCH] Fix start event handler + launch menu title bar turns out you need to call Reset() on the event even when you set its initial state to false --- Bloxstrap/Bootstrapper.cs | 23 ++++++++++++------- .../UI/Elements/Dialogs/LaunchMenuDialog.xaml | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 16c7c843..b26d16f1 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -328,18 +328,25 @@ private void StartRoblox() return; } - using var startEvent = new EventWaitHandle(false, EventResetMode.ManualReset, AppData.StartEvent); - - // v2.2.0 - byfron will trip if we keep a process handle open for over a minute, so we're doing this now int gameClientPid; - using (var gameClient = Process.Start(startInfo)!) + bool startEventSignalled; + + using (var startEvent = new EventWaitHandle(false, EventResetMode.ManualReset, AppData.StartEvent)) { - gameClientPid = gameClient.Id; - } + startEvent.Reset(); + + // v2.2.0 - byfron will trip if we keep a process handle open for over a minute, so we're doing this now + using (var process = Process.Start(startInfo)!) + { + gameClientPid = process.Id; + } - App.Logger.WriteLine(LOG_IDENT, $"Started Roblox (PID {gameClientPid}), waiting for start event"); + App.Logger.WriteLine(LOG_IDENT, $"Started Roblox (PID {gameClientPid}), waiting for start event"); + + startEventSignalled = startEvent.WaitOne(TimeSpan.FromSeconds(10)); + } - if (!startEvent.WaitOne(TimeSpan.FromSeconds(10))) + if (!startEventSignalled) { Frontend.ShowPlayerErrorDialog(); return; diff --git a/Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml b/Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml index ea141759..04e89852 100644 --- a/Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml +++ b/Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml @@ -24,7 +24,7 @@ - +