From 7ab421ed30fdc679895d8db0a86c39b44d0feee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=A2=E6=A1=83=E5=85=AD?= <49054754+HongChao6@users.noreply.github.com> Date: Tue, 21 Jan 2025 17:33:26 +0800 Subject: [PATCH] fix(span): fix align text to center and right layout issues. (#7615) Signed-off-by: liuhongchao --- src/widgets/span/lv_span.c | 6 ++++++ tests/ref_imgs/widgets/span_10.png | Bin 0 -> 3684 bytes tests/ref_imgs_vg_lite/widgets/span_10.png | Bin 0 -> 3703 bytes tests/src/test_cases/widgets/test_span.c | 19 +++++++++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 tests/ref_imgs/widgets/span_10.png create mode 100644 tests/ref_imgs_vg_lite/widgets/span_10.png diff --git a/src/widgets/span/lv_span.c b/src/widgets/span/lv_span.c index e7ece397c..e2d40ebe6 100644 --- a/src/widgets/span/lv_span.c +++ b/src/widgets/span/lv_span.c @@ -1041,6 +1041,12 @@ static void lv_draw_span(lv_obj_t * obj, lv_layer_t * layer) uint32_t i; for(i = 0; i < item_cnt; i++) { lv_snippet_t * pinfo = lv_get_snippet(i); + if(ellipsis_valid && i == item_cnt - 1) { + uint32_t n_ofs = 0; + lv_text_get_snippet(pinfo->txt, pinfo->font, pinfo->letter_space, max_width - txts_w, + LV_TEXT_FLAG_BREAK_ALL, &pinfo->txt_w, &n_ofs); + pinfo->bytes = n_ofs; + } txts_w = txts_w + pinfo->txt_w; } txts_w -= lv_get_snippet(item_cnt - 1)->letter_space; diff --git a/tests/ref_imgs/widgets/span_10.png b/tests/ref_imgs/widgets/span_10.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0049c328a2a68121ab9695037f71d112631852 GIT binary patch literal 3684 zcmeH~>r<0g8o&>@fNL$ZD{BgNiK8>rMIo(q6JQ|J9Uw+s5LT(&5^O8d1PMwSLJ|@x z&bS*383zG(1EEXWMH-USVz>ozsim1E3WIKlBqT2qqJ@zACJ+d)ub=kQ{s+8Y&dmFq z%befyJI|T(*K;|zH}}Nu0RX&-Kb4sez^;P;gv{>_h5tOgEa(Ox@+dy@__J`M9td zv)QaxtG#~g1)2f+z*RG8UZTb}WecZ=Mn)J<5ut#12chlS8{X)qr}3X~yPwa^&6!Ll zgMm?<`E7o$j?^1=xo7jyh{-`uQ;d$5R2C{av|6p#>t!p6(c^k%6Hqm7?Yn5FG0}Wk zk+?u~A$pveYJ#AQ^mLQiOi1rG+QSidJN@H{#K}suNN?kPUI6Ar{#S>8Y;0^?bwb3F z5^8EEO>U|hl$#vY$t4m|)u6HB1R9O@`~4EB6k%*fmfP+2FH$=_C!d=Rzt@77o6OIj zSDc8Ah={;oFtvz>X?Bn2I+Mv9ck^P_rWcHMKaTgRt@cmxExH!%$K`IBUavoJ;DA*{ zlh@N|=&mUYJUtqX9qG94tV9>Dlzu>xsmsnOjv0+c;q)(R`xN$V;7Ws{v#!
F^$ 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