瀏覽代碼

Fix Select Screen cancel destination

Scott Lahteine 3 年之前
父節點
當前提交
bf316d9ec5

+ 4
- 1
Marlin/src/lcd/menu/menu.cpp 查看文件

@@ -412,7 +412,10 @@ void MenuItem_confirm::select_screen(
412 412
   const bool ui_selection = ui.update_selection(), got_click = ui.use_click();
413 413
   if (got_click || ui.should_draw()) {
414 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 419
     ui.defer_status_screen();
417 420
   }
418 421
 }

+ 1
- 0
Marlin/src/lcd/menu/menu.h 查看文件

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

+ 1
- 1
Marlin/src/lcd/menu/menu_advanced.cpp 查看文件

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

+ 4
- 4
Marlin/src/lcd/menu/menu_configuration.cpp 查看文件

@@ -224,11 +224,11 @@ void menu_advanced_settings();
224 224
     ACTION_ITEM(MSG_BLTOUCH_STOW, bltouch._stow);
225 225
     ACTION_ITEM(MSG_BLTOUCH_SW_MODE, bltouch._set_SW_mode);
226 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 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 232
       ACTION_ITEM(MSG_BLTOUCH_MODE_ECHO, bltouch_report);
233 233
     #endif
234 234
     END_MENU();

+ 1
- 1
Marlin/src/lcd/menu/menu_mixer.cpp 查看文件

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

Loading…
取消
儲存