Przeglądaj źródła

Fix Select Screen cancel destination

Scott Lahteine 4 lat temu
rodzic
commit
bf316d9ec5

+ 4
- 1
Marlin/src/lcd/menu/menu.cpp Wyświetl plik

412
   const bool ui_selection = ui.update_selection(), got_click = ui.use_click();
412
   const bool ui_selection = ui.update_selection(), got_click = ui.use_click();
413
   if (got_click || ui.should_draw()) {
413
   if (got_click || ui.should_draw()) {
414
     draw_select_screen(yes, no, ui_selection, pref, string, suff);
414
     draw_select_screen(yes, no, ui_selection, pref, string, suff);
415
-    if (got_click) { ui_selection ? yesFunc() : noFunc(); }
415
+    if (got_click) {
416
+      selectFunc_t callFunc = ui_selection ? yesFunc : noFunc;
417
+      if (callFunc) callFunc(); else ui.goto_previous_screen();
418
+    }
416
     ui.defer_status_screen();
419
     ui.defer_status_screen();
417
   }
420
   }
418
 }
421
 }

+ 1
- 0
Marlin/src/lcd/menu/menu.h Wyświetl plik

542
 
542
 
543
 #define _CONFIRM_ITEM_INNER_P(PLABEL, V...) do {             \
543
 #define _CONFIRM_ITEM_INNER_P(PLABEL, V...) do {             \
544
   if (encoderLine == _thisItemNr && ui.use_click()) {        \
544
   if (encoderLine == _thisItemNr && ui.use_click()) {        \
545
+    ui.save_previous_screen();                               \
545
     ui.goto_screen([]{MenuItem_confirm::select_screen(V);}); \
546
     ui.goto_screen([]{MenuItem_confirm::select_screen(V);}); \
546
     return;                                                  \
547
     return;                                                  \
547
   }                                                          \
548
   }                                                          \

+ 1
- 1
Marlin/src/lcd/menu/menu_advanced.cpp Wyświetl plik

614
   #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
614
   #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
615
     CONFIRM_ITEM(MSG_INIT_EEPROM,
615
     CONFIRM_ITEM(MSG_INIT_EEPROM,
616
       MSG_BUTTON_INIT, MSG_BUTTON_CANCEL,
616
       MSG_BUTTON_INIT, MSG_BUTTON_CANCEL,
617
-      ui.init_eeprom, ui.goto_previous_screen,
617
+      ui.init_eeprom, nullptr,
618
       GET_TEXT(MSG_INIT_EEPROM), (const char *)nullptr, PSTR("?")
618
       GET_TEXT(MSG_INIT_EEPROM), (const char *)nullptr, PSTR("?")
619
     );
619
     );
620
   #endif
620
   #endif

+ 4
- 4
Marlin/src/lcd/menu/menu_configuration.cpp Wyświetl plik

224
     ACTION_ITEM(MSG_BLTOUCH_STOW, bltouch._stow);
224
     ACTION_ITEM(MSG_BLTOUCH_STOW, bltouch._stow);
225
     ACTION_ITEM(MSG_BLTOUCH_SW_MODE, bltouch._set_SW_mode);
225
     ACTION_ITEM(MSG_BLTOUCH_SW_MODE, bltouch._set_SW_mode);
226
     #if ENABLED(BLTOUCH_LCD_VOLTAGE_MENU)
226
     #if ENABLED(BLTOUCH_LCD_VOLTAGE_MENU)
227
-      CONFIRM_ITEM(MSG_BLTOUCH_5V_MODE, MSG_BLTOUCH_5V_MODE, MSG_BUTTON_CANCEL, bltouch._set_5V_mode, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
228
-      CONFIRM_ITEM(MSG_BLTOUCH_OD_MODE, MSG_BLTOUCH_OD_MODE, MSG_BUTTON_CANCEL, bltouch._set_OD_mode, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
227
+      CONFIRM_ITEM(MSG_BLTOUCH_5V_MODE, MSG_BLTOUCH_5V_MODE, MSG_BUTTON_CANCEL, bltouch._set_5V_mode, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
228
+      CONFIRM_ITEM(MSG_BLTOUCH_OD_MODE, MSG_BLTOUCH_OD_MODE, MSG_BUTTON_CANCEL, bltouch._set_OD_mode, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
229
       ACTION_ITEM(MSG_BLTOUCH_MODE_STORE, bltouch._mode_store);
229
       ACTION_ITEM(MSG_BLTOUCH_MODE_STORE, bltouch._mode_store);
230
-      CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_5V, MSG_BLTOUCH_MODE_STORE_5V, MSG_BUTTON_CANCEL, bltouch.mode_conv_5V, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
231
-      CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_OD, MSG_BLTOUCH_MODE_STORE_OD, MSG_BUTTON_CANCEL, bltouch.mode_conv_OD, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
230
+      CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_5V, MSG_BLTOUCH_MODE_STORE_5V, MSG_BUTTON_CANCEL, bltouch.mode_conv_5V, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
231
+      CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_OD, MSG_BLTOUCH_MODE_STORE_OD, MSG_BUTTON_CANCEL, bltouch.mode_conv_OD, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
232
       ACTION_ITEM(MSG_BLTOUCH_MODE_ECHO, bltouch_report);
232
       ACTION_ITEM(MSG_BLTOUCH_MODE_ECHO, bltouch_report);
233
     #endif
233
     #endif
234
     END_MENU();
234
     END_MENU();

+ 1
- 1
Marlin/src/lcd/menu/menu_mixer.cpp Wyświetl plik

264
       LCD_MESSAGEPGM(MSG_VTOOLS_RESET);
264
       LCD_MESSAGEPGM(MSG_VTOOLS_RESET);
265
       ui.return_to_status();
265
       ui.return_to_status();
266
     },
266
     },
267
-    ui.goto_previous_screen,
267
+    nullptr,
268
     GET_TEXT(MSG_RESET_VTOOLS), (const char *)nullptr, PSTR("?")
268
     GET_TEXT(MSG_RESET_VTOOLS), (const char *)nullptr, PSTR("?")
269
   );
269
   );
270
 
270
 

Ładowanie…
Anuluj
Zapisz