diff --git a/src/main.cpp b/src/main.cpp index b9e33426..5273d035 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -150,8 +150,10 @@ void verifyWakeupLongPress() { // Give the user up to 1000ms to start holding the power button, and must hold for SETTINGS.getPowerButtonDuration() const auto start = millis(); bool abort = false; - // It takes us some time to wake up from deep sleep, so we need to subtract that from the duration - constexpr uint16_t calibration = 29; + // Subtract the current time, because inputManager only starts counting the HeldTime from the first update() + // This way, we remove the time we already took to reach here from the duration, + // assuming the button was held until now from millis()==0 (i.e. device start time). + const uint16_t calibration = start; const uint16_t calibratedPressDuration = (calibration < SETTINGS.getPowerButtonDuration()) ? SETTINGS.getPowerButtonDuration() - calibration : 1;