From b9e0c4daaf6f4c86ccb8bbe0a0e7710900dccda1 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Sat, 8 Feb 2025 04:40:04 +0100 Subject: [PATCH] fix(flex): don't count item gap for leading hidden items (#7720) --- src/layouts/flex/lv_flex.c | 4 +- tests/ref_imgs/flex_hide_items.png | Bin 0 -> 11913 bytes tests/ref_imgs_vg_lite/flex_hide_items.png | Bin 0 -> 13174 bytes tests/src/test_cases/test_align_flex.c | 67 ++++++++++++++++++++- 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 tests/ref_imgs/flex_hide_items.png create mode 100644 tests/ref_imgs_vg_lite/flex_hide_items.png diff --git a/src/layouts/flex/lv_flex.c b/src/layouts/flex/lv_flex.c index 9c875f53b..2fac83d67 100644 --- a/src/layouts/flex/lv_flex.c +++ b/src/layouts/flex/lv_flex.c @@ -254,6 +254,7 @@ static int32_t find_track_end(lv_obj_t * cont, flex_t * f, int32_t item_start_id int32_t item_id = item_start_id; int32_t grow_min_size_sum = 0; lv_obj_t * item = lv_obj_get_child(cont, item_id); + bool first_item = true; while(item) { if(item_id != item_start_id && lv_obj_has_flag(item, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK)) break; @@ -296,11 +297,12 @@ static int32_t find_track_end(lv_obj_t * cont, flex_t * f, int32_t item_start_id else { int32_t item_size = get_main_size(item); int32_t req_size = item_size; - if(item_id != item_start_id) req_size += item_gap; /*No gap before the first item*/ + if(!first_item) req_size += item_gap; /*No gap before the first item*/ if(f->wrap && t->track_fix_main_size + grow_min_size_sum + req_size > max_main_size) break; t->track_fix_main_size += req_size; } + first_item = false; t->track_cross_size = LV_MAX(get_cross_size(item), t->track_cross_size); t->item_cnt++; } diff --git a/tests/ref_imgs/flex_hide_items.png b/tests/ref_imgs/flex_hide_items.png new file mode 100644 index 0000000000000000000000000000000000000000..1a08f96ecdbf66e4193ceec643b00a7677a57995 GIT binary patch literal 11913 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