From a1b362c98622ecbc063cfb17fb091fdab4522e8a Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 9 Aug 2021 11:23:48 +0200 Subject: [PATCH] fix(canvas) invalidate the image on delete fixes #2398 --- src/widgets/lv_canvas.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/widgets/lv_canvas.c b/src/widgets/lv_canvas.c index c0e7624cb2d..7c796f6ad5e 100644 --- a/src/widgets/lv_canvas.c +++ b/src/widgets/lv_canvas.c @@ -27,12 +27,14 @@ * STATIC PROTOTYPES **********************/ static void lv_canvas_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj); +static void lv_canvas_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj); /********************** * STATIC VARIABLES **********************/ const lv_obj_class_t lv_canvas_class = { .constructor_cb = lv_canvas_constructor, + .destructor_cb = lv_canvas_destructor, .instance_size = sizeof(lv_canvas_t), .base_class = &lv_img_class }; @@ -911,4 +913,13 @@ static void lv_canvas_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj LV_TRACE_OBJ_CREATE("finished"); } +static void lv_canvas_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) +{ + LV_UNUSED(class_p); + LV_TRACE_OBJ_CREATE("begin"); + + lv_canvas_t * canvas = (lv_canvas_t *)obj; + lv_img_cache_invalidate_src(&canvas->dsc); +} + #endif