diff --git a/Marlin/src/gcode/sd/M21_M22.cpp b/Marlin/src/gcode/sd/M21_M22.cpp index f42784d8eb..c7f41f9c81 100644 --- a/Marlin/src/gcode/sd/M21_M22.cpp +++ b/Marlin/src/gcode/sd/M21_M22.cpp @@ -26,7 +26,6 @@ #include "../gcode.h" #include "../../sd/cardreader.h" -#include "../../lcd/marlinui.h" /** * M21: Init SD Card @@ -38,7 +37,6 @@ void GcodeSuite::M21() { card.mount(); } */ void GcodeSuite::M22() { if (!IS_SD_PRINTING()) card.release(); - IF_ENABLED(TFT_COLOR_UI, ui.refresh(LCDVIEW_CALL_REDRAW_NEXT)); } #endif // SDSUPPORT diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index aca10edc6a..6e66188c02 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -249,7 +249,14 @@ void menu_main() { #if PIN_EXISTS(SD_DETECT) GCODES_ITEM(MSG_CHANGE_MEDIA, PSTR("M21")); // M21 Change Media #else // - or - - GCODES_ITEM(MSG_RELEASE_MEDIA, PSTR("M22")); // M22 Release Media + ACTION_ITEM(MSG_RELEASE_MEDIA, []{ // M22 Release Media + queue.inject(PSTR("M22")); + #if ENABLED(TFT_COLOR_UI) + // Menu display issue on item removal with multi language selection menu + if (encoderTopLine > 0) encoderTopLine--; + ui.refresh(LCDVIEW_CALL_REDRAW_NEXT); + #endif + }); #endif SUBMENU(MSG_MEDIA_MENU, MEDIA_MENU_GATEWAY); // Media Menu (or Password First) }