mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2025-12-30 03:10:33 -07:00
🚸 Fix TFT GLCD "Select from Media" glitch
This commit is contained in:
parent
7ee745b2da
commit
3df75188f3
3 changed files with 27 additions and 21 deletions
|
|
@ -1114,7 +1114,7 @@ void MarlinUI::init() {
|
|||
#if MARLINUI_SCROLL_NAME
|
||||
// If scrolling of long file names is enabled and we are in the sd card menu,
|
||||
// cause a refresh to occur until all the text has scrolled into view.
|
||||
if (currentScreen == menu_media && filename_scroll_max && !lcd_status_update_delay--) {
|
||||
if (currentScreen == menu_media_filelist && filename_scroll_max && !lcd_status_update_delay--) {
|
||||
lcd_status_update_delay = ++filename_scroll_pos >= filename_scroll_max ? 12 : 4; // Long delay at end and start
|
||||
if (filename_scroll_pos > filename_scroll_max) filename_scroll_pos = 0;
|
||||
refresh(LCDVIEW_REDRAW_NOW);
|
||||
|
|
|
|||
|
|
@ -211,6 +211,7 @@ void menu_main();
|
|||
void menu_move();
|
||||
|
||||
#if HAS_MEDIA
|
||||
void menu_media_filelist();
|
||||
void menu_media();
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ void lcd_sd_updir() {
|
|||
|
||||
void MarlinUI::reselect_last_file() {
|
||||
if (sd_encoder_position == 0xFFFF) return;
|
||||
goto_screen(menu_media, sd_encoder_position, sd_top_line, sd_items);
|
||||
goto_screen(menu_media_filelist, sd_encoder_position, sd_top_line, sd_items);
|
||||
sd_encoder_position = 0xFFFF;
|
||||
defer_status_screen();
|
||||
}
|
||||
|
|
@ -101,6 +101,29 @@ class MenuItem_sdfolder : public MenuItem_sdbase {
|
|||
}
|
||||
};
|
||||
|
||||
#if HAS_MULTI_VOLUME
|
||||
void menu_media_select() {
|
||||
START_MENU();
|
||||
BACK_ITEM_F(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT_F(MSG_MAIN_MENU) : GET_TEXT_F(MSG_BACK));
|
||||
#if ENABLED(VOLUME_SD_ONBOARD)
|
||||
ACTION_ITEM(MSG_SD_CARD, []{ card.changeMedia(&card.media_driver_sdcard); card.mount(); ui.goto_screen(menu_media_filelist); });
|
||||
#endif
|
||||
#if ENABLED(VOLUME_USB_FLASH_DRIVE)
|
||||
ACTION_ITEM(MSG_USB_DISK, []{ card.changeMedia(&card.media_driver_usbFlash); card.mount(); ui.goto_screen(menu_media_filelist); });
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* "Select From Media" menu item. Depending on single or multiple drives:
|
||||
* - menu_media_filelist - List files on the current media
|
||||
* - menu_media_select - Select one of the attached drives, then go to the file list
|
||||
*/
|
||||
void menu_media() {
|
||||
ui.goto_screen(TERN(HAS_MULTI_VOLUME, menu_media_select, menu_media_filelist));
|
||||
}
|
||||
|
||||
void menu_media_filelist() {
|
||||
ui.encoder_direction_menus();
|
||||
|
||||
|
|
@ -113,7 +136,7 @@ void menu_media_filelist() {
|
|||
|
||||
START_MENU();
|
||||
#if HAS_MULTI_VOLUME
|
||||
ACTION_ITEM(MSG_BACK, []{ ui.goto_screen(menu_media); });
|
||||
ACTION_ITEM(MSG_BACK, []{ ui.goto_screen(menu_media_select); });
|
||||
#else
|
||||
BACK_ITEM_F(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT_F(MSG_MAIN_MENU) : GET_TEXT_F(MSG_BACK));
|
||||
#endif
|
||||
|
|
@ -141,22 +164,4 @@ void menu_media_filelist() {
|
|||
END_MENU();
|
||||
}
|
||||
|
||||
#if HAS_MULTI_VOLUME
|
||||
void menu_media_select() {
|
||||
START_MENU();
|
||||
BACK_ITEM_F(TERN1(BROWSE_MEDIA_ON_INSERT, screen_history_depth) ? GET_TEXT_F(MSG_MAIN_MENU) : GET_TEXT_F(MSG_BACK));
|
||||
#if ENABLED(VOLUME_SD_ONBOARD)
|
||||
ACTION_ITEM(MSG_SD_CARD, []{ card.changeMedia(&card.media_driver_sdcard); card.mount(); ui.goto_screen(menu_media_filelist); });
|
||||
#endif
|
||||
#if ENABLED(VOLUME_USB_FLASH_DRIVE)
|
||||
ACTION_ITEM(MSG_USB_DISK, []{ card.changeMedia(&card.media_driver_usbFlash); card.mount(); ui.goto_screen(menu_media_filelist); });
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
#endif
|
||||
|
||||
void menu_media() {
|
||||
TERN(HAS_MULTI_VOLUME, menu_media_select, menu_media_filelist)();
|
||||
}
|
||||
|
||||
#endif // HAS_MARLINUI_MENU && HAS_MEDIA
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue