From 94e1efee94343f336e36efca206de1551185106e Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Tue, 6 May 2025 23:23:24 -0500 Subject: [PATCH] [turbine,studio] Fix confirm app close pop up to work with Ctrl-Q --- src/olympic/studio/applib/src/studioui.cpp | 2 +- src/olympic/turbine/include/turbine/turbine.hpp | 2 +- src/olympic/turbine/src/gba/turbine.cpp | 2 +- src/olympic/turbine/src/glfw/turbine.cpp | 7 +++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/olympic/studio/applib/src/studioui.cpp b/src/olympic/studio/applib/src/studioui.cpp index 2593bf3a..1782fa64 100644 --- a/src/olympic/studio/applib/src/studioui.cpp +++ b/src/olympic/studio/applib/src/studioui.cpp @@ -588,7 +588,7 @@ ox::Error StudioUI::makeCopyDlg(ox::StringViewCR path) noexcept { ox::Error StudioUI::handleCloseAppResponse(ig::PopupResponse const response) noexcept { if (response == ig::PopupResponse::OK && m_activeEditor) { - turbine::requestShutdown(m_tctx); + turbine::requestShutdown(m_tctx, true); } return {}; } diff --git a/src/olympic/turbine/include/turbine/turbine.hpp b/src/olympic/turbine/include/turbine/turbine.hpp index 69d3274c..34e34a16 100644 --- a/src/olympic/turbine/include/turbine/turbine.hpp +++ b/src/olympic/turbine/include/turbine/turbine.hpp @@ -27,7 +27,7 @@ ox::Error run(Context &ctx) noexcept; [[nodiscard]] TimeMs ticksMs(Context const&ctx) noexcept; -void requestShutdown(Context &ctx) noexcept; +void requestShutdown(Context &ctx, bool force = false) noexcept; using ShutdownHandler = bool (*)(Context&); diff --git a/src/olympic/turbine/src/gba/turbine.cpp b/src/olympic/turbine/src/gba/turbine.cpp index 6c3cd24f..d4e3b258 100644 --- a/src/olympic/turbine/src/gba/turbine.cpp +++ b/src/olympic/turbine/src/gba/turbine.cpp @@ -82,7 +82,7 @@ bool buttonDown(Context const&, Key k) noexcept { return k <= Key::GamePad_L && !(REG_GAMEPAD & (1 << static_cast(k))); } -void requestShutdown(Context &ctx) noexcept { +void requestShutdown(Context &ctx, bool) noexcept { ctx.running = false; } diff --git a/src/olympic/turbine/src/glfw/turbine.cpp b/src/olympic/turbine/src/glfw/turbine.cpp index 3cce688b..f281dc7a 100644 --- a/src/olympic/turbine/src/glfw/turbine.cpp +++ b/src/olympic/turbine/src/glfw/turbine.cpp @@ -125,8 +125,11 @@ bool buttonDown(Context const&ctx, Key const key) noexcept { return (ctx.keysDown >> static_cast(key)) & 1; } -void requestShutdown(Context &ctx) noexcept { - ctx.running = false; +void requestShutdown(Context &ctx, bool const force) noexcept { + glfwSetWindowShouldClose(ctx.window, true); + if (force) { + ctx.running = false; + } } void setShutdownHandler(Context &ctx, ShutdownHandler const handler) noexcept {