From 7c26a54d3f2434c4d578f58af011a76dd298d4e3 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Wed, 6 May 2020 03:34:05 -0500
Subject: [PATCH] Fix, clarify LCD_TIMEOUT_TO_STATUS

Replaces #17887

Co-Authored-By: Daniel Callander <knifa@users.noreply.github.com>
---
 .../extui/lib/ftdi_eve_touch_ui/screens/base_screen.cpp   | 8 ++++----
 .../src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h | 2 +-
 Marlin/src/lcd/ultralcd.cpp                               | 6 +++---
 Marlin/src/lcd/ultralcd.h                                 | 8 ++++++--
 4 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/base_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/base_screen.cpp
index 7e88b7883a..d449876baf 100644
--- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/base_screen.cpp
+++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/base_screen.cpp
@@ -46,7 +46,7 @@ bool BaseScreen::buttonStyleCallback(CommandProcessor &cmd, uint8_t tag, uint8_t
     return false;
   }
 
-  #if LCD_TIMEOUT_TO_STATUS
+  #if LCD_TIMEOUT_TO_STATUS > 0
     if (EventLoop::get_pressed_tag() != 0) {
       reset_menu_timeout();
     }
@@ -66,7 +66,7 @@ bool BaseScreen::buttonStyleCallback(CommandProcessor &cmd, uint8_t tag, uint8_t
 }
 
 void BaseScreen::onIdle() {
-  #if LCD_TIMEOUT_TO_STATUS
+  #if LCD_TIMEOUT_TO_STATUS > 0
     if ((millis() - last_interaction) > LCD_TIMEOUT_TO_STATUS) {
       reset_menu_timeout();
       #if ENABLED(TOUCH_UI_DEBUG)
@@ -78,12 +78,12 @@ void BaseScreen::onIdle() {
 }
 
 void BaseScreen::reset_menu_timeout() {
-  #if LCD_TIMEOUT_TO_STATUS
+  #if LCD_TIMEOUT_TO_STATUS > 0
     last_interaction = millis();
   #endif
 }
 
-#if LCD_TIMEOUT_TO_STATUS
+#if LCD_TIMEOUT_TO_STATUS > 0
   uint32_t BaseScreen::last_interaction;
 #endif
 
diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h
index b2d5e55a12..ce77a00b81 100644
--- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h
+++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h
@@ -103,7 +103,7 @@ enum {
 
 class BaseScreen : public UIScreen {
   protected:
-    #if LCD_TIMEOUT_TO_STATUS
+    #if LCD_TIMEOUT_TO_STATUS > 0
       static uint32_t last_interaction;
     #endif
 
diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp
index deedbb4e14..1193a2fee7 100644
--- a/Marlin/src/lcd/ultralcd.cpp
+++ b/Marlin/src/lcd/ultralcd.cpp
@@ -121,7 +121,7 @@ MarlinUI ui;
   #endif
 #endif
 
-#if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS
+#if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS > 0
   bool MarlinUI::defer_return_to_status;
 #endif
 
@@ -732,7 +732,7 @@ void MarlinUI::update() {
   static uint16_t max_display_update_time = 0;
   millis_t ms = millis();
 
-  #if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS
+  #if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS > 0
     static millis_t return_to_status_ms = 0;
     #define RESET_STATUS_TIMEOUT() (return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS)
   #else
@@ -967,7 +967,7 @@ void MarlinUI::update() {
         NOLESS(max_display_update_time, millis() - ms);
     }
 
-    #if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS
+    #if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS > 0
       // Return to Status Screen after a timeout
       if (on_status_screen() || defer_return_to_status)
         RESET_STATUS_TIMEOUT();
diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h
index 33d7de2748..7df6b42e00 100644
--- a/Marlin/src/lcd/ultralcd.h
+++ b/Marlin/src/lcd/ultralcd.h
@@ -508,7 +508,11 @@ public:
     #endif
 
     FORCE_INLINE static void defer_status_screen(const bool defer=true) {
-      TERN(LCD_TIMEOUT_TO_STATUS, defer_return_to_status = defer, UNUSED(defer));
+      #if LCD_TIMEOUT_TO_STATUS > 0
+        defer_return_to_status = defer;
+      #else
+        UNUSED(defer);
+      #endif
     }
 
     static inline void goto_previous_screen_no_defer() {
@@ -612,7 +616,7 @@ private:
 
   #if HAS_SPI_LCD
     #if HAS_LCD_MENU
-      #if LCD_TIMEOUT_TO_STATUS
+      #if LCD_TIMEOUT_TO_STATUS > 0
         static bool defer_return_to_status;
       #else
         static constexpr bool defer_return_to_status = false;
-- 
GitLab