From e6484d9dab9f9468fd59ce06bae3049f7bb39228 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Tue, 8 Jan 2019 23:08:20 -0600
Subject: [PATCH] Return to status when SD card is removed

---
 Marlin/src/lcd/menu/menu_sdcard.cpp | 2 +-
 Marlin/src/lcd/ultralcd.cpp         | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/Marlin/src/lcd/menu/menu_sdcard.cpp b/Marlin/src/lcd/menu/menu_sdcard.cpp
index 0b10b57375..4a5179f9de 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 af43114872..2c55c9d425 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();
-- 
GitLab