lv_ta: fix wrong cursor positon when clicked after the last character
This commit is contained in:
@@ -8,7 +8,6 @@
|
|||||||
*********************/
|
*********************/
|
||||||
#include "lv_label.h"
|
#include "lv_label.h"
|
||||||
#if LV_USE_LABEL != 0
|
#if LV_USE_LABEL != 0
|
||||||
|
|
||||||
#include "../lv_core/lv_obj.h"
|
#include "../lv_core/lv_obj.h"
|
||||||
#include "../lv_core/lv_debug.h"
|
#include "../lv_core/lv_debug.h"
|
||||||
#include "../lv_core/lv_group.h"
|
#include "../lv_core/lv_group.h"
|
||||||
@@ -20,6 +19,7 @@
|
|||||||
#include "../lv_misc/lv_printf.h"
|
#include "../lv_misc/lv_printf.h"
|
||||||
#include "../lv_themes/lv_theme.h"
|
#include "../lv_themes/lv_theme.h"
|
||||||
|
|
||||||
|
#undef LV_USE_BIDI
|
||||||
/*********************
|
/*********************
|
||||||
* DEFINES
|
* DEFINES
|
||||||
*********************/
|
*********************/
|
||||||
@@ -761,13 +761,14 @@ uint16_t lv_label_get_letter_on(const lv_obj_t * label, lv_point_t * pos)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
x += lv_font_get_glyph_width(font, letter, letter_next);
|
lv_coord_t gw = lv_font_get_glyph_width(font, letter, letter_next);
|
||||||
|
|
||||||
/*Finish if the x position or the last char of the line is reached*/
|
/*Finish if the x position or the last char of the next line is reached*/
|
||||||
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
|
if(pos->x < x + (gw >> 1) || i + line_start == new_line_start || txt[i_act + line_start] == '\0') {
|
||||||
i = i_act;
|
i = i_act;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
x += gw;
|
||||||
x += letter_space;
|
x += letter_space;
|
||||||
i_act = i;
|
i_act = i;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user