From 598be8bcfab23f5440c3848d0ab30e5f71deccd2 Mon Sep 17 00:00:00 2001 From: Davide Faletti <76700890+davide-faletti@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:41:11 +0100 Subject: [PATCH] fix(observer): fixed lv_subject_remove_all_obj (#5464) --- src/others/observer/lv_observer.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/others/observer/lv_observer.c b/src/others/observer/lv_observer.c index 6298c8d521..10b3186d29 100644 --- a/src/others/observer/lv_observer.c +++ b/src/others/observer/lv_observer.c @@ -358,16 +358,24 @@ void lv_subject_remove_all_obj(lv_subject_t * subject, lv_obj_t * obj) LV_LOG_WARN("Subject not initialized yet"); return; } + while(lv_obj_remove_event_cb(obj, unsubscribe_on_delete_cb)); + +#if LV_USE_BUTTON while(lv_obj_remove_event_cb(obj, btn_value_changed_event_cb)); +#endif /*LV_USE_BUTTON*/ + +#if LV_USE_ARC while(lv_obj_remove_event_cb(obj, arc_value_changed_event_cb)); +#endif /*LV_USE_ARC*/ + #if LV_USE_ROLLER while(lv_obj_remove_event_cb(obj, roller_value_changed_event_cb)); -#endif +#endif /*LV_USE_ROLLER*/ #if LV_USE_DROPDOWN while(lv_obj_remove_event_cb(obj, dropdown_value_changed_event_cb)); -#endif +#endif /*LV_USE_DROPDOWN*/ lv_observer_t * observer = _lv_ll_get_head(&subject->subs_ll); while(observer) {