diff --git a/Marlin/src/lcd/menu/menu_sdcard.cpp b/Marlin/src/lcd/menu/menu_sdcard.cpp index 0b10b5737..4a5179f9d 100644 --- a/Marlin/src/lcd/menu/menu_sdcard.cpp +++ b/Marlin/src/lcd/menu/menu_sdcard.cpp @@ -114,7 +114,7 @@ void menu_sdcard() { else if (card.flag.cardOK) MENU_ITEM(function, LCD_STR_FOLDER "..", lcd_sd_updir); - for (uint16_t i = 0; i < fileCnt; i++) { + if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) { if (_menuLineNr == _thisItemNr) { const uint16_t nr = #if ENABLED(SDCARD_RATHERRECENTFIRST) && DISABLED(SDCARD_SORT_ALPHA) diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index af4311487..2c55c9d42 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -709,7 +709,10 @@ void MarlinUI::update() { } else { card.release(); - if (old_sd_status != 2) set_status_P(PSTR(MSG_SD_REMOVED)); + if (old_sd_status != 2) { + set_status_P(PSTR(MSG_SD_REMOVED)); + if (!on_status_screen()) return_to_status(); + } } refresh();