From f91b2cd779637f3cdc42d2d0995ca89cbd15789b Mon Sep 17 00:00:00 2001
From: matcool <26722564+matcool@users.noreply.github.com>
Date: Mon, 12 Feb 2024 13:20:46 -0300
Subject: [PATCH] show yes/no choice instead for safe mode

---
 loader/src/load.cpp | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/loader/src/load.cpp b/loader/src/load.cpp
index 9d509487..1ba9a99b 100644
--- a/loader/src/load.cpp
+++ b/loader/src/load.cpp
@@ -95,15 +95,16 @@ int geodeEntry(void* platformData) {
 #ifdef GEODE_IS_WINDOWS
     // yes this is quite funny
     if (GetAsyncKeyState(VK_SHIFT) != 0) {
-        LoaderImpl::get()->forceSafeMode();
-        std::thread([] {
-            MessageBoxA(
-                NULL,
-                "You have triggered Geode Safe Mode by holding SHIFT.\nGeode will not load any mods.",
-                "Attention",
-                MB_OK | MB_ICONINFORMATION
-            );
-        }).detach();
+        auto choice = MessageBoxA(
+            NULL,
+            "(This has been triggered because you were holding SHIFT)\n"
+            "Do you want to activate Geode Safe Mode? This disables loading any mods.",
+            "Attention",
+            MB_YESNO | MB_ICONINFORMATION
+        );
+        if (choice == IDYES) {
+            LoaderImpl::get()->forceSafeMode();
+        }
     }
 #endif