diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 84b7d256..cac32346 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -24,6 +24,7 @@ #include "../ta-log.h" #include "../fileutils.h" #include "imgui.h" +#include "imgui_internal.h" #include "imgui_impl_sdl.h" #include "imgui_impl_sdlrenderer.h" #include "ImGuiFileDialog.h" @@ -2352,6 +2353,9 @@ bool FurnaceGUI::loop() { ImGui::EndMenu(); } if (ImGui::BeginMenu("settings")) { + if (ImGui::MenuItem("lock layout",NULL,lockLayout)) { + lockLayout=!lockLayout; + } if (ImGui::MenuItem("visualizer",NULL,fancyPattern)) { fancyPattern=!fancyPattern; e->enableCommandStream(fancyPattern); @@ -2469,7 +2473,7 @@ bool FurnaceGUI::loop() { } ImGui::EndMainMenuBar(); - ImGui::DockSpaceOverViewport(); + ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0); drawPattern(); drawEditControls(); @@ -2866,6 +2870,7 @@ bool FurnaceGUI::init() { tempoView=e->getConfBool("tempoView",true); waveHex=e->getConfBool("waveHex",false); + lockLayout=e->getConfBool("lockLayout",false); syncSettings(); @@ -3028,6 +3033,7 @@ bool FurnaceGUI::finish() { e->setConf("tempoView",tempoView); e->setConf("waveHex",waveHex); + e->setConf("lockLayout",lockLayout); for (int i=0; i