diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index f89e120f1..b922feab9 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -2569,6 +2569,7 @@ bool FurnaceGUI::loop() { ImGui_ImplSDL2_NewFrame(sdlWin); ImGui::NewFrame(); + curWindowLast=curWindow; curWindow=GUI_WINDOW_NOTHING; editOptsVisible=false; @@ -3913,6 +3914,7 @@ FurnaceGUI::FurnaceGUI(): nonLatchNibble(false), curWindow(GUI_WINDOW_NOTHING), nextWindow(GUI_WINDOW_NOTHING), + curWindowLast(GUI_WINDOW_NOTHING), nextDesc(NULL), latchNote(-1), latchIns(-2), diff --git a/src/gui/gui.h b/src/gui/gui.h index 90d909f2d..deabc8897 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -966,7 +966,7 @@ class FurnaceGUI { SelectionPoint selStart, selEnd, cursor; bool selecting, curNibble, orderNibble, followOrders, followPattern, changeAllOrders; bool collapseWindow, demandScrollX, fancyPattern, wantPatName, firstFrame, tempoView, waveHex, lockLayout, editOptsVisible, latchNibble, nonLatchNibble; - FurnaceGUIWindows curWindow, nextWindow; + FurnaceGUIWindows curWindow, nextWindow, curWindowLast; float peak[2]; float patChanX[DIV_MAX_CHANS+1]; float patChanSlideY[DIV_MAX_CHANS+1]; diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index 61fccb5ae..8fff1c9ac 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -64,7 +64,7 @@ inline void FurnaceGUI::patternRow(int i, bool isPlaying, float lineHeight, int } // check overflow highlight if (settings.overflowHighlight) { - if (edit && cursor.y==i) { + if (edit && cursor.y==i && curWindowLast==GUI_WINDOW_PATTERN) { ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0,ImGui::GetColorU32(uiColors[GUI_COLOR_EDITING])); } else if (isPlaying && oldRow==i && ord==e->getOrder()) { ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0,ImGui::GetColorU32(uiColors[GUI_COLOR_PATTERN_PLAY_HEAD])); @@ -75,7 +75,7 @@ inline void FurnaceGUI::patternRow(int i, bool isPlaying, float lineHeight, int } } else { isPushing=true; - if (edit && cursor.y==i) { + if (edit && cursor.y==i && curWindowLast==GUI_WINDOW_PATTERN) { ImGui::PushStyleColor(ImGuiCol_Header,ImGui::GetColorU32(uiColors[GUI_COLOR_EDITING])); } else if (isPlaying && oldRow==i && ord==e->getOrder()) { ImGui::PushStyleColor(ImGuiCol_Header,ImGui::GetColorU32(uiColors[GUI_COLOR_PATTERN_PLAY_HEAD]));