From b37544df17adda5767bba02f7545ebd888e29c29 Mon Sep 17 00:00:00 2001 From: Ignacio Sanchez Gines <863613+drhelius@users.noreply.github.com> Date: Tue, 30 Jul 2024 20:10:08 +0200 Subject: [PATCH] Menu item to enable multi-viewport --- platforms/desktop-shared/config.cpp | 2 ++ platforms/desktop-shared/config.h | 1 + platforms/desktop-shared/gui.cpp | 16 ++++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/platforms/desktop-shared/config.cpp b/platforms/desktop-shared/config.cpp index a4319e6..02724ca 100644 --- a/platforms/desktop-shared/config.cpp +++ b/platforms/desktop-shared/config.cpp @@ -160,6 +160,7 @@ void config_read(void) config_debug.show_video = read_bool("Debug", "Video", false); config_debug.show_video_registers = read_bool("Debug", "VideoRegisters", false); config_debug.font_size = read_int("Debug", "FontSize", 0); + config_debug.multi_viewport = read_bool("Debug", "MultiViewport", false); config_emulator.fullscreen = read_bool("Emulator", "FullScreen", false); config_emulator.show_menu = read_bool("Emulator", "ShowMenu", true); @@ -327,6 +328,7 @@ void config_write(void) write_bool("Debug", "Video", config_debug.show_video); write_bool("Debug", "VideoRegisters", config_debug.show_video_registers); write_int("Debug", "FontSize", config_debug.font_size); + write_bool("Debug", "MultiViewport", config_debug.multi_viewport); write_bool("Emulator", "FullScreen", config_emulator.fullscreen); write_bool("Emulator", "ShowMenu", config_emulator.show_menu); diff --git a/platforms/desktop-shared/config.h b/platforms/desktop-shared/config.h index 44a6d37..7debf35 100644 --- a/platforms/desktop-shared/config.h +++ b/platforms/desktop-shared/config.h @@ -144,6 +144,7 @@ struct config_Debug bool show_video = false; bool show_video_registers = true; int font_size = 0; + bool multi_viewport = false; }; EXTERN mINI::INIFile* config_ini_file; diff --git a/platforms/desktop-shared/gui.cpp b/platforms/desktop-shared/gui.cpp index 4a514ed..505d247 100644 --- a/platforms/desktop-shared/gui.cpp +++ b/platforms/desktop-shared/gui.cpp @@ -97,10 +97,6 @@ void gui_init(void) io.IniFilename = config_imgui_file_path; io.FontGlobalScale /= application_display_scale; -#if defined(__APPLE__) || defined(_WIN32) - io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; -#endif - gui_roboto_font = io.Fonts->AddFontFromMemoryCompressedTTF(RobotoMedium_compressed_data, RobotoMedium_compressed_size, 17.0f * application_display_scale, NULL, io.Fonts->GetGlyphRangesCyrillic()); ImFontConfig font_cfg; @@ -899,6 +895,18 @@ static void main_menu(void) ImGui::Separator(); +#if defined(__APPLE__) || defined(_WIN32) + if (ImGui::MenuItem("Multi-Viewport", "", &config_debug.multi_viewport, config_debug.debug)) + { + if (config_debug.multi_viewport) + ImGui::GetIO().ConfigFlags &= ~ImGuiConfigFlags_ViewportsEnable; + else + ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; + } + + ImGui::Separator(); +#endif + if (ImGui::MenuItem("Load Symbols...", "", (void*)0, config_debug.debug)) { open_symbols = true;