diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 31cfdd04..dbd63505 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -13602,6 +13602,13 @@ void GameScreen::renderTrainerWindow(game::GameHandler& gameHandler) { bool open = true; if (ImGui::Begin("Trainer", &open)) { + // If user clicked window close, short-circuit before rendering large trainer tables. + if (!open) { + ImGui::End(); + gameHandler.closeTrainer(); + return; + } + const auto& trainer = gameHandler.getTrainerSpells(); // NPC name