|
@@ -49,6 +49,12 @@ int lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2], lcd_preheat_fan_speed[2
|
49
|
49
|
millis_t previous_lcd_status_ms = 0;
|
50
|
50
|
#endif
|
51
|
51
|
|
|
52
|
+#if ENABLED(BABYSTEPPING)
|
|
53
|
+ long babysteps_done = 0;
|
|
54
|
+ millis_t status_screen_click_time = 0;
|
|
55
|
+ static void lcd_babystep_z();
|
|
56
|
+#endif
|
|
57
|
+
|
52
|
58
|
uint8_t lcd_status_message_level;
|
53
|
59
|
char lcd_status_message[3 * (LCD_WIDTH) + 1] = WELCOME_MSG; // worst case is kana with up to 3*LCD_WIDTH+1
|
54
|
60
|
|
|
@@ -411,6 +417,21 @@ uint16_t max_display_update_time = 0;
|
411
|
417
|
* General function to go directly to a screen
|
412
|
418
|
*/
|
413
|
419
|
void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder = 0) {
|
|
420
|
+ #ifdef DOUBLE_CLICK_JUMPS_TO_Z_BABYSTEPPING
|
|
421
|
+ #if ENABLED(BABYSTEPPING)
|
|
422
|
+ if (currentScreen==lcd_status_screen && screen==lcd_main_menu) // We are in leaving the status screen to goto the main_menu
|
|
423
|
+ status_screen_click_time = millis(); // screen. Mark the time so we know how quick the user is
|
|
424
|
+ // pressing buttons.
|
|
425
|
+ if (currentScreen==lcd_main_menu) {
|
|
426
|
+ if ( screen==lcd_status_screen && status_screen_click_time+DOUBLE_CLICK_TIME_WINDOW>millis() ) {
|
|
427
|
+ lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
|
|
428
|
+ status_screen_click_time = 0;
|
|
429
|
+ lcd_babystep_z();
|
|
430
|
+ return;
|
|
431
|
+ }
|
|
432
|
+ }
|
|
433
|
+ #endif
|
|
434
|
+ #endif
|
414
|
435
|
if (currentScreen != screen) {
|
415
|
436
|
currentScreen = screen;
|
416
|
437
|
encoderPosition = encoder;
|
|
@@ -756,8 +777,6 @@ void kill_screen(const char* lcd_msg) {
|
756
|
777
|
|
757
|
778
|
#if ENABLED(BABYSTEPPING)
|
758
|
779
|
|
759
|
|
- long babysteps_done = 0;
|
760
|
|
-
|
761
|
780
|
void _lcd_babystep(const AxisEnum axis, const char* msg) {
|
762
|
781
|
if (lcd_clicked) { defer_return_to_status = false; return lcd_goto_previous_menu(); }
|
763
|
782
|
ENCODER_DIRECTION_NORMAL();
|