From fa69216d4ca7eac01b411549eefc7293dbc36a2c Mon Sep 17 00:00:00 2001 From: Lorenzo Arena Date: Fri, 27 Sep 2024 12:59:43 +0200 Subject: [PATCH] =?UTF-8?q?fix(image):=20backport=20lv=5Fimage=5Fset=5Finn?= =?UTF-8?q?er=5Falign()=20behaviour=20with=20LV=5FIMAGE=5FALIGN=5F?= =?UTF-8?q?=E2=80=A6=20(#6864)=20(#6946)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: rdegliesposti --- src/widgets/image/lv_image.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/widgets/image/lv_image.c b/src/widgets/image/lv_image.c index 147429436..5fdcc12d5 100644 --- a/src/widgets/image/lv_image.c +++ b/src/widgets/image/lv_image.c @@ -435,6 +435,11 @@ void lv_image_set_inner_align(lv_obj_t * obj, lv_image_align_t align) lv_image_t * img = (lv_image_t *)obj; if(align == img->align) return; + /*If we're removing STRETCH, reset the scale*/ + if(img->align == LV_IMAGE_ALIGN_STRETCH) { + lv_image_set_scale(obj, LV_SCALE_NONE); + } + img->align = align; update_align(obj); @@ -849,9 +854,11 @@ static void update_align(lv_obj_t * obj) if(img->align == LV_IMAGE_ALIGN_STRETCH) { lv_image_set_rotation(obj, 0); lv_image_set_pivot(obj, 0, 0); - int32_t scale_x = lv_obj_get_width(obj) * LV_SCALE_NONE / img->w; - int32_t scale_y = lv_obj_get_height(obj) * LV_SCALE_NONE / img->h; - scale_update(obj, scale_x, scale_y); + if(img->w != 0 && img->h != 0) { + int32_t scale_x = lv_obj_get_width(obj) * LV_SCALE_NONE / img->w; + int32_t scale_y = lv_obj_get_height(obj) * LV_SCALE_NONE / img->h; + scale_update(obj, scale_x, scale_y); + } } else if(img->align == LV_IMAGE_ALIGN_TILE) { lv_image_set_rotation(obj, 0);