Compute grapheme index in find_cursor_position for TextInput

This commit is contained in:
Héctor Ramón Jiménez 2023-02-10 20:03:33 +01:00
parent 51844c5d0c
commit 26e902f7d8
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
2 changed files with 13 additions and 15 deletions

View file

@ -1193,17 +1193,26 @@ where
let size = size.unwrap_or_else(|| renderer.default_size());
let offset = offset(renderer, text_bounds, font, size, value, state);
let value = value.to_string();
renderer
let char_offset = renderer
.hit_test(
&value.to_string(),
&value,
size,
font,
Size::INFINITY,
Point::new(x + offset, text_bounds.height / 2.0),
true,
)
.map(text::Hit::cursor)
.map(text::Hit::cursor)?;
Some(
unicode_segmentation::UnicodeSegmentation::graphemes(
&value[..char_offset],
true,
)
.count(),
)
}
const CURSOR_BLINK_INTERVAL_MILLIS: u128 = 500;