From d7eec76e569b210bf3718bafdf9c934e9df67491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Costa?= Date: Fri, 22 May 2026 08:18:35 +0200 Subject: [PATCH] fix(obj/pos): stop tranform point recursion after reaching screen (#10160) --- src/core/lv_obj_pos.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/lv_obj_pos.c b/src/core/lv_obj_pos.c index 4dfbb3124c..c234a08f37 100644 --- a/src/core/lv_obj_pos.c +++ b/src/core/lv_obj_pos.c @@ -1050,13 +1050,14 @@ void lv_obj_transform_point_array(const lv_obj_t * obj, lv_point_t points[], siz bool do_tranf = layer_type == LV_LAYER_TYPE_TRANSFORM; bool recursive = flags & LV_OBJ_POINT_TRANSFORM_FLAG_RECURSIVE; bool inverse = flags & LV_OBJ_POINT_TRANSFORM_FLAG_INVERSE; + lv_obj_t * parent = lv_obj_get_parent(obj); if(inverse) { - if(recursive) lv_obj_transform_point_array(lv_obj_get_parent(obj), points, count, flags); + if(recursive && parent) lv_obj_transform_point_array(parent, points, count, flags); if(do_tranf) transform_point_array(obj, points, count, inverse); } else { if(do_tranf) transform_point_array(obj, points, count, inverse); - if(recursive) lv_obj_transform_point_array(lv_obj_get_parent(obj), points, count, flags); + if(recursive && parent) lv_obj_transform_point_array(parent, points, count, flags); } }