diff --git a/Marlin/src/lcd/tft/ui_1024x600.cpp b/Marlin/src/lcd/tft/ui_1024x600.cpp index 18c50c92f7a2..f4079accb93d 100644 --- a/Marlin/src/lcd/tft/ui_1024x600.cpp +++ b/Marlin/src/lcd/tft/ui_1024x600.cpp @@ -47,6 +47,19 @@ void MarlinUI::tft_idle() { #if ENABLED(TOUCH_SCREEN) + #if HAS_TOUCH_SLEEP + static bool sleepCleared; + if (touchIO.isSleeping()) { + tft.queue.reset(); + if (!sleepCleared) { + sleepCleared = true; + ui.clear_lcd(); + tft.queue.async(); + } + TERN_(TOUCH_SCREEN, touch.idle()); + return; + } else sleepCleared = false; + #endif if (draw_menu_navigation) { add_control(164, TFT_HEIGHT - 50, PAGE_UP, imgPageUp, encoderTopLine > 0); add_control(796, TFT_HEIGHT - 50, PAGE_DOWN, imgPageDown, encoderTopLine + LCD_HEIGHT < screen_items); diff --git a/Marlin/src/lcd/tft/ui_320x240.cpp b/Marlin/src/lcd/tft/ui_320x240.cpp index 2d7533692463..6ec2cfcb2c3a 100644 --- a/Marlin/src/lcd/tft/ui_320x240.cpp +++ b/Marlin/src/lcd/tft/ui_320x240.cpp @@ -45,13 +45,10 @@ #include "../../feature/bedlevel/bedlevel.h" #endif -#if HAS_TOUCH_SLEEP - static bool sleepCleared; -#endif - void MarlinUI::tft_idle() { #if ENABLED(TOUCH_SCREEN) #if HAS_TOUCH_SLEEP + static bool sleepCleared; if (touchIO.isSleeping()) { tft.queue.reset(); if (!sleepCleared) { diff --git a/Marlin/src/lcd/tft/ui_480x320.cpp b/Marlin/src/lcd/tft/ui_480x320.cpp index 02e3354d93af..9c8371184467 100644 --- a/Marlin/src/lcd/tft/ui_480x320.cpp +++ b/Marlin/src/lcd/tft/ui_480x320.cpp @@ -47,6 +47,19 @@ void MarlinUI::tft_idle() { #if ENABLED(TOUCH_SCREEN) + #if HAS_TOUCH_SLEEP + static bool sleepCleared; + if (touchIO.isSleeping()) { + tft.queue.reset(); + if (!sleepCleared) { + sleepCleared = true; + ui.clear_lcd(); + tft.queue.async(); + } + TERN_(TOUCH_SCREEN, touch.idle()); + return; + } else sleepCleared = false; + #endif if (draw_menu_navigation) { add_control(104, TFT_HEIGHT - 34, PAGE_UP, imgPageUp, encoderTopLine > 0); add_control(344, TFT_HEIGHT - 34, PAGE_DOWN, imgPageDown, encoderTopLine + LCD_HEIGHT < screen_items);