diff --git a/src/app/core/window.cc b/src/app/core/window.cc index 595115a3..43295d58 100644 --- a/src/app/core/window.cc +++ b/src/app/core/window.cc @@ -196,9 +196,19 @@ absl::Status HandleEvents(Window& window) { window.active_ = false; break; case SDL_WINDOWEVENT_SIZE_CHANGED: + case SDL_WINDOWEVENT_RESIZED: + // Update display size for both resize and size_changed events io.DisplaySize.x = static_cast(event.window.data1); io.DisplaySize.y = static_cast(event.window.data2); break; + case SDL_WINDOWEVENT_MINIMIZED: + case SDL_WINDOWEVENT_HIDDEN: + // Window is minimized/hidden - nothing to render + break; + case SDL_WINDOWEVENT_RESTORED: + case SDL_WINDOWEVENT_SHOWN: + // Window is restored - resume normal operation + break; } break; } diff --git a/src/app/emu/emulator.cc b/src/app/emu/emulator.cc index ca355b1b..ce299f9d 100644 --- a/src/app/emu/emulator.cc +++ b/src/app/emu/emulator.cc @@ -50,7 +50,9 @@ using ImGui::TableNextColumn; using ImGui::Text; Emulator::~Emulator() { - Cleanup(); + // Don't call Cleanup() in destructor - renderer is already destroyed + // Just stop emulation + running_ = false; } void Emulator::Cleanup() {