[UI] Fixed debug crash while closing post-processing menu

This commit is contained in:
Gliniak
2026-03-18 22:21:15 +01:00
parent aba2269c2b
commit c651641c2d

View File

@@ -337,6 +337,7 @@ void EmulatorWindow::DisplayConfigDialog::OnDraw(ImGuiIO& io) {
ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_AlwaysAutoResize |
ImGuiWindowFlags_HorizontalScrollbar)) { ImGuiWindowFlags_HorizontalScrollbar)) {
ImGui::End(); ImGui::End();
Close();
return; return;
} }
@@ -567,6 +568,7 @@ void EmulatorWindow::DisplayConfigDialog::OnDraw(ImGuiIO& io) {
ImGui::End(); ImGui::End();
if (!dialog_open) { if (!dialog_open) {
Close();
emulator_window_.ToggleDisplayConfigDialog(); emulator_window_.ToggleDisplayConfigDialog();
// `this` might have been destroyed by ToggleDisplayConfigDialog. // `this` might have been destroyed by ToggleDisplayConfigDialog.
return; return;
@@ -1539,10 +1541,14 @@ void EmulatorWindow::ToggleFullscreen() {
void EmulatorWindow::ToggleDisplayConfigDialog() { void EmulatorWindow::ToggleDisplayConfigDialog() {
if (!display_config_dialog_) { if (!display_config_dialog_) {
display_config_dialog_ = std::unique_ptr<DisplayConfigDialog>( display_config_dialog_ =
new DisplayConfigDialog(imgui_drawer_.get(), *this)); std::make_unique<DisplayConfigDialog>(imgui_drawer_.get(), *this);
} else { } else {
display_config_dialog_.reset(); if (display_config_dialog_->IsClosing()) {
display_config_dialog_.release();
} else {
display_config_dialog_.reset();
}
} }
} }