diff --git a/src/frontend/KaizenGui.cpp b/src/frontend/KaizenGui.cpp index 969e545e..1a3416cd 100644 --- a/src/frontend/KaizenGui.cpp +++ b/src/frontend/KaizenGui.cpp @@ -10,10 +10,6 @@ KaizenGui::KaizenGui() noexcept : window("Kaizen", 800, 600), settingsWindow(win SDL_InitSubSystem(SDL_INIT_GAMEPAD); SDL_AddGamepadMapping(gamecontrollerdb_str); - - std::thread fileWorker(&KaizenGui::FileWorker, this); - - fileWorker.detach(); } KaizenGui::~KaizenGui() { @@ -391,7 +387,7 @@ void KaizenGui::RenderUI() { fileDialogOpen = false; constexpr SDL_DialogFileFilter filters[] = {{"All files", "*"}, {"Nintendo 64 executable", "n64;z64;v64"}, {"Nintendo 64 executable archive", "rar;tar;zip;7z"}}; SDL_ShowOpenFileDialog([](void *userdata, const char * const *filelist, int) { - const auto kaizen = static_cast(userdata); + auto kaizen = static_cast(userdata); if (!filelist) { panic("An error occured: {}", SDL_GetError()); @@ -405,6 +401,9 @@ void KaizenGui::RenderUI() { kaizen->fileToLoad = *filelist; kaizen->shouldDisplaySpinner = true; + + std::thread fileWorker(&KaizenGui::FileWorker, kaizen); + fileWorker.detach(); }, this, window.getHandle(), filters, 3, nullptr, false); } diff --git a/src/frontend/KaizenGui.hpp b/src/frontend/KaizenGui.hpp index 7e9f1c05..d55a78d5 100644 --- a/src/frontend/KaizenGui.hpp +++ b/src/frontend/KaizenGui.hpp @@ -32,7 +32,7 @@ private: bool fileDialogOpen = false; bool quit = false; bool shouldDisplaySpinner = false; - std::string fileToLoad; + std::string fileToLoad = ""; void RenderUI(); void HandleInput(const SDL_Event &event); void QueryDevices(const SDL_Event &event);