From c651641c2d7c6e178bd03ea04cb49c702804e761 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Wed, 18 Mar 2026 22:21:15 +0100 Subject: [PATCH] [UI] Fixed debug crash while closing post-processing menu --- src/xenia/app/emulator_window.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/xenia/app/emulator_window.cc b/src/xenia/app/emulator_window.cc index 7703faca0..483ea6e0f 100644 --- a/src/xenia/app/emulator_window.cc +++ b/src/xenia/app/emulator_window.cc @@ -337,6 +337,7 @@ void EmulatorWindow::DisplayConfigDialog::OnDraw(ImGuiIO& io) { ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_HorizontalScrollbar)) { ImGui::End(); + Close(); return; } @@ -567,6 +568,7 @@ void EmulatorWindow::DisplayConfigDialog::OnDraw(ImGuiIO& io) { ImGui::End(); if (!dialog_open) { + Close(); emulator_window_.ToggleDisplayConfigDialog(); // `this` might have been destroyed by ToggleDisplayConfigDialog. return; @@ -1539,10 +1541,14 @@ void EmulatorWindow::ToggleFullscreen() { void EmulatorWindow::ToggleDisplayConfigDialog() { if (!display_config_dialog_) { - display_config_dialog_ = std::unique_ptr( - new DisplayConfigDialog(imgui_drawer_.get(), *this)); + display_config_dialog_ = + std::make_unique(imgui_drawer_.get(), *this); } else { - display_config_dialog_.reset(); + if (display_config_dialog_->IsClosing()) { + display_config_dialog_.release(); + } else { + display_config_dialog_.reset(); + } } }