diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index dc392a884..302c9c350 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -29,7 +29,7 @@ void FurnaceGUI::drawChanOsc() { } if (!chanOscOpen) return; ImGui::SetNextWindowSizeConstraints(ImVec2(64.0f*dpiScale,32.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale)); - if (ImGui::Begin("Oscilloscope (per-channel)",&chanOscOpen)) { + if (ImGui::Begin("Oscilloscope (per-channel)",&chanOscOpen,globalWinFlags)) { if (ImGui::BeginTable("ChanOscSettings",3)) { ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -150,4 +150,4 @@ void FurnaceGUI::drawChanOsc() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_CHAN_OSC; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/channels.cpp b/src/gui/channels.cpp index c88075611..846fca971 100644 --- a/src/gui/channels.cpp +++ b/src/gui/channels.cpp @@ -29,7 +29,7 @@ void FurnaceGUI::drawChannels() { nextWindow=GUI_WINDOW_NOTHING; } if (!channelsOpen) return; - if (ImGui::Begin("Channels",&channelsOpen)) { + if (ImGui::Begin("Channels",&channelsOpen,globalWinFlags)) { if (ImGui::BeginTable("ChannelList",3)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0); @@ -64,4 +64,4 @@ void FurnaceGUI::drawChannels() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_CHANNELS; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/compatFlags.cpp b/src/gui/compatFlags.cpp index 461048d62..ca4195afd 100644 --- a/src/gui/compatFlags.cpp +++ b/src/gui/compatFlags.cpp @@ -28,7 +28,7 @@ void FurnaceGUI::drawCompatFlags() { nextWindow=GUI_WINDOW_NOTHING; } if (!compatFlagsOpen) return; - if (ImGui::Begin("Compatibility Flags",&compatFlagsOpen)) { + if (ImGui::Begin("Compatibility Flags",&compatFlagsOpen,globalWinFlags)) { ImGui::TextWrapped("these flags are designed to provide better DefleMask/older Furnace compatibility."); ImGui::Checkbox("Limit slide range",&e->song.limitSlides); if (ImGui::IsItemHovered()) { diff --git a/src/gui/dataList.cpp b/src/gui/dataList.cpp index 36333e19e..cc09c96be 100644 --- a/src/gui/dataList.cpp +++ b/src/gui/dataList.cpp @@ -36,7 +36,7 @@ void FurnaceGUI::drawInsList() { nextWindow=GUI_WINDOW_NOTHING; } if (!insListOpen) return; - if (ImGui::Begin("Instruments",&insListOpen)) { + if (ImGui::Begin("Instruments",&insListOpen,globalWinFlags)) { if (settings.unifiedDataView) settings.horizontalDataView=0; if (ImGui::Button(ICON_FA_PLUS "##InsAdd")) { doAction(GUI_ACTION_INS_LIST_ADD); @@ -295,7 +295,7 @@ void FurnaceGUI::drawWaveList() { nextWindow=GUI_WINDOW_NOTHING; } if (!waveListOpen) return; - if (ImGui::Begin("Wavetables",&waveListOpen)) { + if (ImGui::Begin("Wavetables",&waveListOpen,globalWinFlags)) { if (ImGui::Button(ICON_FA_PLUS "##WaveAdd")) { doAction(GUI_ACTION_WAVE_LIST_ADD); } @@ -340,7 +340,7 @@ void FurnaceGUI::drawSampleList() { nextWindow=GUI_WINDOW_NOTHING; } if (!sampleListOpen) return; - if (ImGui::Begin("Samples",&sampleListOpen)) { + if (ImGui::Begin("Samples",&sampleListOpen,globalWinFlags)) { if (ImGui::Button(ICON_FA_FILE "##SampleAdd")) { doAction(GUI_ACTION_SAMPLE_LIST_ADD); } diff --git a/src/gui/debugWindow.cpp b/src/gui/debugWindow.cpp index 07f9a3266..41f112719 100644 --- a/src/gui/debugWindow.cpp +++ b/src/gui/debugWindow.cpp @@ -35,7 +35,7 @@ void FurnaceGUI::drawDebug() { } if (!debugOpen) return; ImGui::SetNextWindowSizeConstraints(ImVec2(400.0f*dpiScale,200.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale)); - if (ImGui::Begin("Debug",&debugOpen,ImGuiWindowFlags_NoDocking)) { + if (ImGui::Begin("Debug",&debugOpen,globalWinFlags|ImGuiWindowFlags_NoDocking)) { ImGui::Text("NOTE: use with caution."); if (ImGui::TreeNode("Debug Controls")) { if (e->isHalted()) { diff --git a/src/gui/editControls.cpp b/src/gui/editControls.cpp index 0a14edb08..9c8f0ad4f 100644 --- a/src/gui/editControls.cpp +++ b/src/gui/editControls.cpp @@ -21,7 +21,7 @@ #include "IconsFontAwesome4.h" void FurnaceGUI::drawMobileControls() { - if (ImGui::Begin("Mobile Controls",NULL,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) { + if (ImGui::Begin("Mobile Controls",NULL,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) { float availX=ImGui::GetContentRegionAvail().x; ImVec2 buttonSize=ImVec2(availX,availX); @@ -80,7 +80,7 @@ void FurnaceGUI::drawEditControls() { if (!editControlsOpen) return; switch (settings.controlLayout) { case 0: // classic - if (ImGui::Begin("Play/Edit Controls",&editControlsOpen)) { + if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,globalWinFlags)) { ImGui::Text("Octave"); ImGui::SameLine(); if (ImGui::InputInt("##Octave",&curOctave,1,1)) { @@ -141,7 +141,7 @@ void FurnaceGUI::drawEditControls() { ImGui::End(); break; case 1: // compact - if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) { + if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) { if (ImGui::Button(ICON_FA_STOP "##Stop")) { stop(); } @@ -218,7 +218,7 @@ void FurnaceGUI::drawEditControls() { ImGui::End(); break; case 2: // compact vertical - if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) { + if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) { ImGui::PushStyleColor(ImGuiCol_Button,TOGGLE_COLOR(e->isPlaying())); if (ImGui::Button(ICON_FA_PLAY "##Play")) { play(); @@ -292,7 +292,7 @@ void FurnaceGUI::drawEditControls() { ImGui::End(); break; case 3: // split - if (ImGui::Begin("Play Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) { + if (ImGui::Begin("Play Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) { if (e->isPlaying()) { ImGui::PushStyleColor(ImGuiCol_Button,uiColors[GUI_COLOR_TOGGLE_ON]); if (ImGui::Button(ICON_FA_STOP "##Stop")) { @@ -346,7 +346,7 @@ void FurnaceGUI::drawEditControls() { if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS; ImGui::End(); - if (ImGui::Begin("Edit Controls",&editControlsOpen)) { + if (ImGui::Begin("Edit Controls",&editControlsOpen,globalWinFlags)) { ImGui::Columns(2); ImGui::Text("Octave"); ImGui::SameLine(); diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 032b87c33..a71a2fec7 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -9,7 +9,7 @@ void FurnaceGUI::drawEffectList() { nextWindow=GUI_WINDOW_NOTHING; } if (!effectListOpen) return; - if (ImGui::Begin("Effect List",&effectListOpen)) { + if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) { ImGui::Text("System at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); if (ImGui::BeginTable("effectList",2)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); @@ -50,4 +50,4 @@ void FurnaceGUI::drawEffectList() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EFFECT_LIST; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 78a2d257a..4ef39c4cf 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3013,40 +3013,15 @@ bool FurnaceGUI::loop() { ImGui::EndMainMenuBar(); } - if (!mobileUI) { - ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0); - } - if (mobileUI) { - ImGuiViewport* mainView=ImGui::GetMainViewport(); - ImGui::SetNextWindowPos(mainView->Pos); - ImGui::SetNextWindowSize(mainView->Size); - ImGui::SetNextWindowViewport(mainView->ID); - ImGuiID dockID=ImGui::GetID("MobileUISpace"); - ImGuiWindowFlags muiFlags=ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoDocking|ImGuiWindowFlags_NoBringToFrontOnFocus|ImGuiWindowFlags_NoNavFocus; - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f)); - ImGui::Begin("MobileUI",NULL,muiFlags); - ImGui::PopStyleVar(3); - if (ImGui::DockBuilderGetNode(dockID)==NULL) { - ImGui::DockBuilderRemoveNode(dockID); - ImGuiID dn=ImGui::DockBuilderAddNode(dockID); - ImGuiID upper, lower, left, right; - ImGui::DockBuilderSplitNode(dn,ImGuiDir_Left,0.1f,&left,&right); - ImGui::DockBuilderSplitNode(right,ImGuiDir_Down,0.2f,&lower,&upper); - ImGui::DockBuilderDockWindow("Mobile Controls",left); - ImGui::DockBuilderDockWindow("Pattern",upper); - ImGui::DockBuilderDockWindow("Piano",lower); - ImGui::DockBuilderFinish(dn); - } - ImGui::DockSpace(dockID); - ImGui::End(); - + globalWinFlags=ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoBringToFrontOnFocus; drawMobileControls(); drawPattern(); drawPiano(); } else { + globalWinFlags=0; + ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0); + drawSubSongs(); drawPattern(); drawEditControls(); @@ -4122,6 +4097,7 @@ FurnaceGUI::FurnaceGUI(): vgmExportVersion(0x171), drawHalt(10), macroPointSize(16), + globalWinFlags(0), curFileDialog(GUI_FILE_OPEN), warnAction(GUI_WARN_OPEN), postWarnAction(GUI_WARN_GENERIC), diff --git a/src/gui/gui.h b/src/gui/gui.h index 65f15c4c7..babb4819c 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -816,6 +816,8 @@ class FurnaceGUI { int drawHalt; int macroPointSize; + ImGuiWindowFlags globalWinFlags; + FurnaceGUIFileDialogs curFileDialog; FurnaceGUIWarnings warnAction; FurnaceGUIWarnings postWarnAction; diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 5cfbd9765..3e129ef5c 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -1344,7 +1344,7 @@ void FurnaceGUI::drawInsEdit() { } if (!insEditOpen) return; ImGui::SetNextWindowSizeConstraints(ImVec2(440.0f*dpiScale,400.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale)); - if (ImGui::Begin("Instrument Editor",&insEditOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) { + if (ImGui::Begin("Instrument Editor",&insEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curIns<0 || curIns>=(int)e->song.ins.size()) { ImGui::Text("no instrument selected"); } else { diff --git a/src/gui/log.cpp b/src/gui/log.cpp index b5f4d3556..0419b6a7d 100644 --- a/src/gui/log.cpp +++ b/src/gui/log.cpp @@ -44,7 +44,7 @@ void FurnaceGUI::drawLog() { nextWindow=GUI_WINDOW_NOTHING; } if (!logOpen) return; - if (ImGui::Begin("Log Viewer",&logOpen)) { + if (ImGui::Begin("Log Viewer",&logOpen,globalWinFlags)) { ImGui::Checkbox("Follow",&followLog); ImGui::SameLine(); ImGui::Text("Level"); diff --git a/src/gui/mixer.cpp b/src/gui/mixer.cpp index 5bb3694e5..7d6f1671f 100644 --- a/src/gui/mixer.cpp +++ b/src/gui/mixer.cpp @@ -28,7 +28,7 @@ void FurnaceGUI::drawMixer() { } if (!mixerOpen) return; ImGui::SetNextWindowSizeConstraints(ImVec2(400.0f*dpiScale,200.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale)); - if (ImGui::Begin("Mixer",&mixerOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) { + if (ImGui::Begin("Mixer",&mixerOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { char id[32]; if (ImGui::SliderFloat("Master Volume",&e->song.masterVol,0,3,"%.2fx")) { if (e->song.masterVol<0) e->song.masterVol=0; @@ -56,4 +56,4 @@ void FurnaceGUI::drawMixer() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_MIXER; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/orders.cpp b/src/gui/orders.cpp index e9886a1ae..826df20f0 100644 --- a/src/gui/orders.cpp +++ b/src/gui/orders.cpp @@ -29,7 +29,7 @@ void FurnaceGUI::drawOrders() { nextWindow=GUI_WINDOW_NOTHING; } if (!ordersOpen) return; - if (ImGui::Begin("Orders",&ordersOpen)) { + if (ImGui::Begin("Orders",&ordersOpen,globalWinFlags)) { float regionX=ImGui::GetContentRegionAvail().x; ImVec2 prevSpacing=ImGui::GetStyle().ItemSpacing; ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(1.0f*dpiScale,1.0f*dpiScale)); diff --git a/src/gui/osc.cpp b/src/gui/osc.cpp index 030a84e9c..b90e7fd08 100644 --- a/src/gui/osc.cpp +++ b/src/gui/osc.cpp @@ -89,7 +89,7 @@ void FurnaceGUI::drawOsc() { ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(0,0)); ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing,ImVec2(0,0)); } - if (ImGui::Begin("Oscilloscope",&oscOpen)) { + if (ImGui::Begin("Oscilloscope",&oscOpen,globalWinFlags)) { if (oscZoomSlider) { if (ImGui::VSliderFloat("##OscZoom",ImVec2(20.0f*dpiScale,ImGui::GetContentRegionAvail().y),&oscZoom,0.5,2.0)) { if (oscZoom<0.5) oscZoom=0.5; diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index b7ca4bed9..2140af277 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -343,7 +343,7 @@ void FurnaceGUI::drawPattern() { sel2.xFine^=sel1.xFine; } ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding,ImVec2(0.0f,0.0f)); - if (ImGui::Begin("Pattern",&patternOpen,settings.avoidRaisingPattern?ImGuiWindowFlags_NoBringToFrontOnFocus:0)) { + if (ImGui::Begin("Pattern",&patternOpen,globalWinFlags|(settings.avoidRaisingPattern?ImGuiWindowFlags_NoBringToFrontOnFocus:0))) { //ImGui::SetWindowSize(ImVec2(scrW*dpiScale,scrH*dpiScale)); patWindowPos=ImGui::GetWindowPos(); patWindowSize=ImGui::GetWindowSize(); diff --git a/src/gui/piano.cpp b/src/gui/piano.cpp index b1aeec227..0e0063bb2 100644 --- a/src/gui/piano.cpp +++ b/src/gui/piano.cpp @@ -52,7 +52,7 @@ void FurnaceGUI::drawPiano() { nextWindow=GUI_WINDOW_NOTHING; } if (!pianoOpen) return; - if (ImGui::Begin("Piano",&pianoOpen,((pianoOptions)?0:ImGuiWindowFlags_NoTitleBar)|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) { + if (ImGui::Begin("Piano",&pianoOpen,((pianoOptions)?0:ImGuiWindowFlags_NoTitleBar)|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) { bool oldPianoKeyPressed[180]; memcpy(oldPianoKeyPressed,pianoKeyPressed,180*sizeof(bool)); memset(pianoKeyPressed,0,180*sizeof(bool)); diff --git a/src/gui/regView.cpp b/src/gui/regView.cpp index 9755e4a83..a441ba967 100644 --- a/src/gui/regView.cpp +++ b/src/gui/regView.cpp @@ -26,7 +26,7 @@ void FurnaceGUI::drawRegView() { nextWindow=GUI_WINDOW_NOTHING; } if (!regViewOpen) return; - if (ImGui::Begin("Register View",®ViewOpen)) { + if (ImGui::Begin("Register View",®ViewOpen,globalWinFlags)) { for (int i=0; isong.systemLen; i++) { ImGui::Text("%d. %s",i+1,getSystemName(e->song.system[i])); int size=0; @@ -68,4 +68,4 @@ void FurnaceGUI::drawRegView() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_REGISTER_VIEW; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index 38a737bdb..7737efbfd 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -35,7 +35,7 @@ void FurnaceGUI::drawSampleEdit() { nextWindow=GUI_WINDOW_NOTHING; } if (!sampleEditOpen) return; - if (ImGui::Begin("Sample Editor",&sampleEditOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) { + if (ImGui::Begin("Sample Editor",&sampleEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curSample<0 || curSample>=(int)e->song.sample.size()) { ImGui::Text("no sample selected"); } else { diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 03746c51d..13ed6847f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -218,7 +218,7 @@ void FurnaceGUI::drawSettings() { nextWindow=GUI_WINDOW_NOTHING; } if (!settingsOpen) return; - if (ImGui::Begin("Settings",&settingsOpen,ImGuiWindowFlags_NoDocking)) { + if (ImGui::Begin("Settings",&settingsOpen,ImGuiWindowFlags_NoDocking|globalWinFlags)) { if (!settingsOpen) { settingsOpen=true; showWarning("Do you want to save your settings?",GUI_WARN_CLOSE_SETTINGS); diff --git a/src/gui/songInfo.cpp b/src/gui/songInfo.cpp index 4328b840f..e90043b7a 100644 --- a/src/gui/songInfo.cpp +++ b/src/gui/songInfo.cpp @@ -29,7 +29,7 @@ void FurnaceGUI::drawSongInfo() { nextWindow=GUI_WINDOW_NOTHING; } if (!songInfoOpen) return; - if (ImGui::Begin("Song Information",&songInfoOpen)) { + if (ImGui::Begin("Song Information",&songInfoOpen,globalWinFlags)) { if (ImGui::BeginTable("NameAuthor",2,ImGuiTableFlags_SizingStretchProp)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0); diff --git a/src/gui/songNotes.cpp b/src/gui/songNotes.cpp index 7c7cbdaa9..74f4ed7ff 100644 --- a/src/gui/songNotes.cpp +++ b/src/gui/songNotes.cpp @@ -29,9 +29,9 @@ void FurnaceGUI::drawNotes() { nextWindow=GUI_WINDOW_NOTHING; } if (!notesOpen) return; - if (ImGui::Begin("Song Comments",¬esOpen)) { + if (ImGui::Begin("Song Comments",¬esOpen,globalWinFlags)) { ImGui::InputTextMultiline("##SongNotes",&e->song.notes,ImGui::GetContentRegionAvail()); } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_NOTES; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/stats.cpp b/src/gui/stats.cpp index 9e1790c9e..636ecd529 100644 --- a/src/gui/stats.cpp +++ b/src/gui/stats.cpp @@ -28,7 +28,7 @@ void FurnaceGUI::drawStats() { nextWindow=GUI_WINDOW_NOTHING; } if (!statsOpen) return; - if (ImGui::Begin("Statistics",&statsOpen)) { + if (ImGui::Begin("Statistics",&statsOpen,globalWinFlags)) { size_t lastProcTime=e->processTime; double maxGot=1000000000.0*(double)e->getAudioDescGot().bufsize/(double)e->getAudioDescGot().rate; String procStr=fmt::sprintf("%.1f%%",100.0*((double)lastProcTime/(double)maxGot)); @@ -50,4 +50,4 @@ void FurnaceGUI::drawStats() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_STATS; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/subSongs.cpp b/src/gui/subSongs.cpp index 8e78dd545..2b6030cbc 100644 --- a/src/gui/subSongs.cpp +++ b/src/gui/subSongs.cpp @@ -11,7 +11,7 @@ void FurnaceGUI::drawSubSongs() { } if (!subSongsOpen) return; ImGui::SetNextWindowSizeConstraints(ImVec2(64.0f*dpiScale,32.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale)); - if (ImGui::Begin("Subsongs",&subSongsOpen,ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar)) { + if (ImGui::Begin("Subsongs",&subSongsOpen,ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar|globalWinFlags)) { char id[1024]; ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0f-ImGui::GetStyle().ItemSpacing.x); if (e->curSubSong->name.empty()) { diff --git a/src/gui/volMeter.cpp b/src/gui/volMeter.cpp index 7be3464e9..7f68709c4 100644 --- a/src/gui/volMeter.cpp +++ b/src/gui/volMeter.cpp @@ -33,7 +33,7 @@ void FurnaceGUI::drawVolMeter() { ImGui::PushStyleVar(ImGuiStyleVar_FramePadding,ImVec2(0,0)); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(0,0)); ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing,ImVec2(0,0)); - if (ImGui::Begin("Volume Meter",&volMeterOpen)) { + if (ImGui::Begin("Volume Meter",&volMeterOpen,globalWinFlags)) { ImDrawList* dl=ImGui::GetWindowDrawList(); bool aspectRatio=(ImGui::GetWindowSize().x/ImGui::GetWindowSize().y)>1.0; @@ -100,4 +100,4 @@ void FurnaceGUI::drawVolMeter() { ImGui::PopStyleVar(4); if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_VOL_METER; ImGui::End(); -} \ No newline at end of file +} diff --git a/src/gui/waveEdit.cpp b/src/gui/waveEdit.cpp index 5c812283e..b4057e684 100644 --- a/src/gui/waveEdit.cpp +++ b/src/gui/waveEdit.cpp @@ -32,7 +32,7 @@ void FurnaceGUI::drawWaveEdit() { if (!waveEditOpen) return; float wavePreview[256]; ImGui::SetNextWindowSizeConstraints(ImVec2(300.0f*dpiScale,300.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale)); - if (ImGui::Begin("Wavetable Editor",&waveEditOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) { + if (ImGui::Begin("Wavetable Editor",&waveEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curWave<0 || curWave>=(int)e->song.wave.size()) { ImGui::Text("no wavetable selected"); } else { @@ -163,4 +163,4 @@ void FurnaceGUI::drawWaveEdit() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_WAVE_EDIT; ImGui::End(); -} \ No newline at end of file +}