diff --git a/main/source/main.cpp b/main/source/main.cpp index ac8fbdcf6..ba4bde941 100644 --- a/main/source/main.cpp +++ b/main/source/main.cpp @@ -20,9 +20,8 @@ int main(int argc, char **argv, char **envp) { bool shouldRestart = false; - EventManager::subscribe([&]{ shouldRestart = true; }); - do { + EventManager::subscribe([&]{ shouldRestart = true; }); shouldRestart = false; // Initialization diff --git a/main/source/window/window.cpp b/main/source/window/window.cpp index 77d5b104e..d12c524c6 100644 --- a/main/source/window/window.cpp +++ b/main/source/window/window.cpp @@ -684,8 +684,9 @@ namespace hex { if (glfwGetPrimaryMonitor() != nullptr) { auto sessionType = hex::getEnvironmentVariable("XDG_SESSION_TYPE"); + bool multiWindowEnabled = ContentRegistry::Settings::read("hex.builtin.setting.interface", "hex.builtin.setting.interface.multi_windows", 1) != 0; - if (!sessionType || !hex::containsIgnoreCase(*sessionType, "wayland")) + if ((!sessionType || !hex::containsIgnoreCase(*sessionType, "wayland")) && multiWindowEnabled) io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; } diff --git a/plugins/builtin/source/content/settings_entries.cpp b/plugins/builtin/source/content/settings_entries.cpp index d18bf0fe5..2c3ee1beb 100644 --- a/plugins/builtin/source/content/settings_entries.cpp +++ b/plugins/builtin/source/content/settings_entries.cpp @@ -185,6 +185,17 @@ namespace hex::plugin::builtin { return false; }); + ContentRegistry::Settings::add("hex.builtin.setting.interface", "hex.builtin.setting.interface.multi_windows", 1, [](auto name, nlohmann::json &setting) { + static bool enabled = static_cast(setting); + + if (ImGui::Checkbox(name.data(), &enabled)) { + setting = static_cast(enabled); + return true; + } + + return false; + }, true); + ContentRegistry::Settings::add("hex.builtin.setting.hex_editor", "hex.builtin.setting.hex_editor.highlight_color", 0x60C08080, [](auto name, nlohmann::json &setting) { static auto color = static_cast(setting); diff --git a/plugins/builtin/source/lang/de_DE.cpp b/plugins/builtin/source/lang/de_DE.cpp index d83bb573c..9a91f3178 100644 --- a/plugins/builtin/source/lang/de_DE.cpp +++ b/plugins/builtin/source/lang/de_DE.cpp @@ -770,6 +770,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.wiki_explain_language", "Wikipedia Sprache" }, { "hex.builtin.setting.interface.fps", "FPS Limite" }, { "hex.builtin.setting.interface.fps.unlocked", "Unbegrenzt" }, + { "hex.builtin.setting.interface.multi_windows", "Multi-Window-Unterstützung aktivieren" }, { "hex.builtin.setting.hex_editor", "Hex Editor" }, { "hex.builtin.setting.hex_editor.highlight_color", "Auswahlfarbe" }, { "hex.builtin.setting.hex_editor.bytes_per_row", "Bytes pro Zeile" }, diff --git a/plugins/builtin/source/lang/en_US.cpp b/plugins/builtin/source/lang/en_US.cpp index d84ec7608..68beff29c 100644 --- a/plugins/builtin/source/lang/en_US.cpp +++ b/plugins/builtin/source/lang/en_US.cpp @@ -774,6 +774,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.wiki_explain_language", "Wikipedia Language" }, { "hex.builtin.setting.interface.fps", "FPS Limit" }, { "hex.builtin.setting.interface.fps.unlocked", "Unlocked" }, + { "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "Hex Editor" }, { "hex.builtin.setting.hex_editor.highlight_color", "Selection highlight color" }, { "hex.builtin.setting.hex_editor.bytes_per_row", "Bytes per row" }, diff --git a/plugins/builtin/source/lang/it_IT.cpp b/plugins/builtin/source/lang/it_IT.cpp index 4877abc17..0f86433bd 100644 --- a/plugins/builtin/source/lang/it_IT.cpp +++ b/plugins/builtin/source/lang/it_IT.cpp @@ -780,6 +780,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.scaling.x2_0", "x4.0" }, { "hex.builtin.setting.interface.fps", "Limite FPS" }, { "hex.builtin.setting.interface.fps.unlocked", "Unblocca" }, + //{ "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "Hex Editor" }, //{ "hex.builtin.setting.hex_editor.highlight_color", "Selection highlight color" }, //{ "hex.builtin.setting.hex_editor.bytes_per_row", "Bytes per row" }, diff --git a/plugins/builtin/source/lang/ja_JP.cpp b/plugins/builtin/source/lang/ja_JP.cpp index cea266944..b4b1718f0 100644 --- a/plugins/builtin/source/lang/ja_JP.cpp +++ b/plugins/builtin/source/lang/ja_JP.cpp @@ -776,6 +776,7 @@ namespace hex::plugin::builtin { //{ "hex.builtin.setting.interface.wiki_explain_language", "Wikipedia Language" }, { "hex.builtin.setting.interface.fps", "FPS制限" }, { "hex.builtin.setting.interface.fps.unlocked", "無制限" }, + //{ "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "Hexエディタ" }, { "hex.builtin.setting.hex_editor.highlight_color", "選択範囲の色" }, { "hex.builtin.setting.hex_editor.bytes_per_row", "1行のバイト数" }, diff --git a/plugins/builtin/source/lang/ko_KR.cpp b/plugins/builtin/source/lang/ko_KR.cpp index 561e5d1e6..6de04faaf 100644 --- a/plugins/builtin/source/lang/ko_KR.cpp +++ b/plugins/builtin/source/lang/ko_KR.cpp @@ -773,6 +773,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.wiki_explain_language", "Wikipedia 언어" }, { "hex.builtin.setting.interface.fps", "FPS 제한" }, { "hex.builtin.setting.interface.fps.unlocked", "제한 없음" }, + //{ "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "헥스 편집기" }, { "hex.builtin.setting.hex_editor.highlight_color", "선택 영역 색상 하이라이트" }, { "hex.builtin.setting.hex_editor.bytes_per_row", "한 줄당 바이트 수" }, diff --git a/plugins/builtin/source/lang/pt_BR.cpp b/plugins/builtin/source/lang/pt_BR.cpp index 273a45e98..e3f189b5a 100644 --- a/plugins/builtin/source/lang/pt_BR.cpp +++ b/plugins/builtin/source/lang/pt_BR.cpp @@ -772,6 +772,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.wiki_explain_language", "Idioma do Wikipedia" }, { "hex.builtin.setting.interface.fps", "FPS Limit" }, { "hex.builtin.setting.interface.fps.unlocked", "Destravado" }, + //{ "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "Hex Editor" }, //{ "hex.builtin.setting.hex_editor.highlight_color", "Selection highlight color" }, { "hex.builtin.setting.hex_editor.bytes_per_row", "Bytes por linha" }, diff --git a/plugins/builtin/source/lang/zh_CN.cpp b/plugins/builtin/source/lang/zh_CN.cpp index 961def84e..6338c1e07 100644 --- a/plugins/builtin/source/lang/zh_CN.cpp +++ b/plugins/builtin/source/lang/zh_CN.cpp @@ -775,6 +775,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.wiki_explain_language", "维基百科使用语言" }, { "hex.builtin.setting.interface.fps", "FPS 限制" }, { "hex.builtin.setting.interface.fps.unlocked", "无限制" }, + //{ "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "Hex 编辑器" }, { "hex.builtin.setting.hex_editor.highlight_color", "选区高亮色" }, { "hex.builtin.setting.hex_editor.bytes_per_row", "每行显示的字节数" }, diff --git a/plugins/builtin/source/lang/zh_TW.cpp b/plugins/builtin/source/lang/zh_TW.cpp index 84c7be0c8..c11144c4e 100644 --- a/plugins/builtin/source/lang/zh_TW.cpp +++ b/plugins/builtin/source/lang/zh_TW.cpp @@ -772,6 +772,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.wiki_explain_language", "維基百科語言" }, { "hex.builtin.setting.interface.fps", "FPS 限制" }, { "hex.builtin.setting.interface.fps.unlocked", "解鎖" }, + //{ "hex.builtin.setting.interface.multi_windows", "Enable Multi Window support" }, { "hex.builtin.setting.hex_editor", "十六進位編輯器" }, //{ "hex.builtin.setting.hex_editor.highlight_color", "Selection highlight color" }, //{ "hex.builtin.setting.hex_editor.bytes_per_row", "Bytes per row" },