diff --git a/lv_core/lv_obj.c b/lv_core/lv_obj.c index a58ead8c2..6924ce158 100644 --- a/lv_core/lv_obj.c +++ b/lv_core/lv_obj.c @@ -49,6 +49,8 @@ static lv_res_t lv_obj_signal(lv_obj_t * obj, lv_signal_t sign, void * param); * STATIC VARIABLES **********************/ +static bool _lv_initialized = false; + /********************** * MACROS **********************/ @@ -62,6 +64,10 @@ static lv_res_t lv_obj_signal(lv_obj_t * obj, lv_signal_t sign, void * param); */ void lv_init(void) { + /* Do nothing if already initialized */ + if (_lv_initialized) + return; + LV_GC_ROOT(_lv_def_scr) = NULL; LV_GC_ROOT(_lv_act_scr) = NULL; LV_GC_ROOT(_lv_top_layer) = NULL; @@ -111,7 +117,7 @@ void lv_init(void) lv_indev_init(); #endif - + _lv_initialized = true; LV_LOG_INFO("lv_init ready"); }