Bläddra i källkod

Use flag to defer lcd return-to-status

Scott Lahteine 9 år sedan
förälder
incheckning
af89ccf96a
1 ändrade filer med 7 tillägg och 8 borttagningar
  1. 7
    8
      Marlin/ultralcd.cpp

+ 7
- 8
Marlin/ultralcd.cpp Visa fil

@@ -279,6 +279,7 @@ millis_t next_lcd_update_ms;
279 279
 uint8_t lcd_status_update_delay;
280 280
 bool ignore_click = false;
281 281
 bool wait_for_unclick;
282
+bool defer_return_to_status = false;
282 283
 uint8_t lcdDrawUpdate = 2;                  /* Set to none-zero when the LCD needs to draw, decreased after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) */
283 284
 
284 285
 // Variables used when editing values.
@@ -429,7 +430,10 @@ static void lcd_status_screen() {
429 430
 
430 431
 #if ENABLED(ULTIPANEL)
431 432
 
432
-static void lcd_return_to_status() { lcd_goto_menu(lcd_status_screen); }
433
+static void lcd_return_to_status() {
434
+  defer_return_to_status = false;
435
+  lcd_goto_menu(lcd_status_screen);
436
+}
433 437
 
434 438
 #if ENABLED(SDSUPPORT)
435 439
 
@@ -1965,13 +1969,7 @@ void lcd_update() {
1965 1969
     #if ENABLED(ULTIPANEL)
1966 1970
 
1967 1971
       // Return to Status Screen after a timeout
1968
-      if (currentMenu != lcd_status_screen &&
1969
-        #if ENABLED(MANUAL_BED_LEVELING)
1970
-          currentMenu != _lcd_level_bed &&
1971
-          currentMenu != _lcd_level_bed_homing &&
1972
-        #endif
1973
-        millis() > return_to_status_ms
1974
-      ) {
1972
+      if (!defer_return_to_status && currentMenu != lcd_status_screen && millis() > return_to_status_ms) {
1975 1973
         lcd_return_to_status();
1976 1974
         lcdDrawUpdate = 2;
1977 1975
       }
@@ -2508,6 +2506,7 @@ char* ftostr52(const float& x) {
2508 2506
    * MBL entry-point
2509 2507
    */
2510 2508
   static void lcd_level_bed() {
2509
+    defer_return_to_status = true;
2511 2510
     axis_known_position[X_AXIS] = axis_known_position[Y_AXIS] = axis_known_position[Z_AXIS] = false;
2512 2511
     mbl.reset();
2513 2512
     enqueue_and_echo_commands_P(PSTR("G28"));

Laddar…
Avbryt
Spara