@@ -43,17 +43,26 @@ static void chameleon_view_on_draw(mui_view_t *p_view, mui_canvas_t *p_canvas) {
43
43
44
44
mui_canvas_set_draw_color (p_canvas , 1 );
45
45
46
+ mui_rect_t clip_win_prev ;
47
+ mui_rect_t clip_win_cur ;
48
+ mui_canvas_get_clip_window (p_canvas , & clip_win_prev );
49
+ x = 8 ;
50
+ clip_win_cur .x = x ;
51
+ clip_win_cur .y = 0 ;
52
+ clip_win_cur .w = mui_canvas_get_width (p_canvas ) - x * 2 ;
53
+ clip_win_cur .h = mui_canvas_get_height (p_canvas );
54
+ mui_canvas_set_clip_window (p_canvas , & clip_win_cur );
55
+
46
56
tag_helper_get_nickname (buff , sizeof (buff ));
47
57
48
- size_t i = sizeof (buff );
49
- while (mui_canvas_get_width (p_canvas ) - 14 < mui_canvas_get_utf8_width (p_canvas , buff ))
50
- {
51
- buff [-- i ] = '\0' ;
52
- }
53
-
54
58
y = 13 + (mui_canvas_get_height (p_canvas ) - 16 ) / 2 ;
55
- x = (mui_canvas_get_width (p_canvas ) - mui_canvas_get_utf8_width (p_canvas , buff )) / 2 ;
56
- mui_canvas_draw_utf8 (p_canvas , x , y , buff );
59
+ if (clip_win_cur .w > mui_canvas_get_utf8_width (p_canvas , buff )) {
60
+ x += (clip_win_cur .w - mui_canvas_get_utf8_width (p_canvas , buff )) / 2 ;
61
+ }
62
+ mui_canvas_draw_utf8_clip (p_canvas , x , y , buff );
63
+
64
+ mui_canvas_set_clip_window (p_canvas , & clip_win_prev );
65
+
57
66
mui_canvas_draw_utf8 (p_canvas , 0 , y , "<" );
58
67
mui_canvas_draw_utf8 (p_canvas , mui_canvas_get_width (p_canvas ) - 5 , y , ">" );
59
68
0 commit comments