[UI] Fixed issues with ImGui on Vulkan and few ASAN issues related to ImGui
- Simplified handling of notifications to faster version with ranges - Removed usage of STB sprintf on checked due to ASAN violation - Draw ImGui windows only when they're not in close_pending state
This commit is contained in:
@@ -1459,7 +1459,11 @@ void EmulatorWindow::ToggleProfilesConfigDialog() {
|
||||
} else {
|
||||
disable_hotkeys_ = false;
|
||||
emulator_->kernel_state()->BroadcastNotification(kXNotificationSystemUI, 0);
|
||||
profile_config_dialog_.reset();
|
||||
if (profile_config_dialog_->IsClosing()) {
|
||||
profile_config_dialog_.release();
|
||||
} else {
|
||||
profile_config_dialog_.reset();
|
||||
}
|
||||
emulator_->kernel_state()->xam_state()->xam_dialogs_shown_--;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,6 +168,16 @@ void ProfileConfigDialog::OnDraw(ImGuiIO& io) {
|
||||
return;
|
||||
}
|
||||
|
||||
// For whatever reason dialog wasn't opened. It's probably in closing state.
|
||||
// We need to handle it here before it will make icons allocation.
|
||||
if (!dialog_open) {
|
||||
ImGui::CloseCurrentPopup();
|
||||
Close();
|
||||
ImGui::End();
|
||||
emulator_window_->ToggleProfilesConfigDialog();
|
||||
return;
|
||||
}
|
||||
|
||||
if (profiles->empty()) {
|
||||
ImGui::TextUnformatted("No profiles found!");
|
||||
ImGui::Spacing();
|
||||
@@ -291,11 +301,6 @@ void ProfileConfigDialog::OnDraw(ImGuiIO& io) {
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
|
||||
if (!dialog_open) {
|
||||
emulator_window_->ToggleProfilesConfigDialog();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace app
|
||||
|
||||
Reference in New Issue
Block a user