diff --git a/src/dev/sdl/lv_sdl_window.c b/src/dev/sdl/lv_sdl_window.c index cb3cdb68b5..fcfca2c0cd 100644 --- a/src/dev/sdl/lv_sdl_window.c +++ b/src/dev/sdl/lv_sdl_window.c @@ -226,7 +226,7 @@ static void sdl_event_handler(lv_timer_t * t) lv_refr_now(disp); break; case SDL_WINDOWEVENT_CLOSE: - clean_up(disp); + lv_display_remove(disp); break; default: break; diff --git a/src/display/lv_display.c b/src/display/lv_display.c index 2c8fcc2b69..3e02a708d8 100644 --- a/src/display/lv_display.c +++ b/src/display/lv_display.c @@ -167,6 +167,9 @@ void lv_display_remove(lv_display_t * disp) lv_obj_delete(disp->bottom_layer); disp->bottom_layer = NULL; } + + disp->act_scr = NULL; + while(disp->screen_cnt != 0) { /*Delete the screenst*/ lv_obj_delete(disp->screens[0]);