diff --git a/Marlin/src/lcd/tft_io/touch_calibration.cpp b/Marlin/src/lcd/tft_io/touch_calibration.cpp index 44ebc73d71a26..5f45a9506df2c 100644 --- a/Marlin/src/lcd/tft_io/touch_calibration.cpp +++ b/Marlin/src/lcd/tft_io/touch_calibration.cpp @@ -92,6 +92,13 @@ void TouchCalibration::validate_calibration() { bool TouchCalibration::handleTouch(uint16_t x, uint16_t y) { static millis_t next_button_update_ms = 0; const millis_t now = millis(); + + // Avoid registering first touch point as top-left corner when initiating touch calibration since user is touching TFT + if (next_button_update_ms == 0) { + next_button_update_ms = now + BUTTON_DELAY_MENU; + return true; + } + if (PENDING(now, next_button_update_ms)) return false; next_button_update_ms = now + BUTTON_DELAY_MENU;