diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 8fdbaf755..39872f3fd 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4948,6 +4948,8 @@ bool FurnaceGUI::loop() { } if (displayNew) { + newSongQuery=""; + newSongFirstFrame=true; displayNew=false; ImGui::OpenPopup("New Song"); } diff --git a/src/gui/gui.h b/src/gui/gui.h index fb193c20a..670fadea6 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1565,6 +1565,7 @@ class FurnaceGUI { double exportFadeOut; + bool newSongFirstFrame; bool editControlsOpen, ordersOpen, insListOpen, songInfoOpen, patternOpen, insEditOpen; bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen; bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen; diff --git a/src/gui/newSong.cpp b/src/gui/newSong.cpp index 8fdafeb9b..735f8bfb0 100644 --- a/src/gui/newSong.cpp +++ b/src/gui/newSong.cpp @@ -34,6 +34,8 @@ void FurnaceGUI::drawNewSong() { avail.y-=ImGui::GetFrameHeightWithSpacing(); if (ImGui::BeginChild("sysPickerC",avail,false,ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar)) { + if (newSongFirstFrame) + ImGui::SetKeyboardFocusHere(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputTextWithHint("##SysSearch","Search...",&newSongQuery)) { String lowerCase=newSongQuery; @@ -159,4 +161,6 @@ void FurnaceGUI::drawNewSong() { updateWindowTitle(); ImGui::CloseCurrentPopup(); } + + newSongFirstFrame=false; }