diff --git a/source/Core/Threads/GUIThread.cpp b/source/Core/Threads/GUIThread.cpp index 5f1355bf..a142c8ba 100644 --- a/source/Core/Threads/GUIThread.cpp +++ b/source/Core/Threads/GUIThread.cpp @@ -184,13 +184,25 @@ static void gui_solderingTempAdjust() { currentTempTargetDegC = 0; uint32_t autoRepeatTimer = 0; uint8_t autoRepeatAcceleration = 0; + bool waitForRelease = false; + ButtonState buttons = getButtonState(); + if (buttons != BUTTON_NONE) { + // Temp adjust entered by long-pressing F button. + waitForRelease = true; + } for (;;) { OLED::setCursor(0, 0); OLED::clearScreen(); OLED::setFont(0); - ButtonState buttons = getButtonState(); - if (buttons) + buttons = getButtonState(); + if (buttons) { + if (waitForRelease) { + buttons = BUTTON_NONE; + } lastChange = xTaskGetTickCount(); + } else { + waitForRelease = false; + } switch (buttons) { case BUTTON_NONE: // stay