Fix #113735: Space Characters in UI Text Entry #113749

Merged
Harley Acheson merged 1 commits from Harley/blender:Fix113735 into main 2023-10-15 17:42:36 +02:00
1 changed files with 9 additions and 6 deletions

View File

@ -2054,10 +2054,15 @@ static void widget_draw_text(const uiFontStyle *fstyle,
bool has_prev = false;
if (pos > 0) {
if (BLF_str_offset_to_glyph_bounds(
fstyle->uifont_id, drawstr + but->ofs, pos - 1, &bounds) &&
!BLI_rcti_is_empty(&bounds))
fstyle->uifont_id, drawstr + but->ofs, pos - 1, &bounds))
{
prev_right_edge = bounds.xmax;
if (bounds.xmax > bounds.xmin) {
prev_right_edge = bounds.xmax;
}
else {
/* Some characters, like space, have empty bounds. */
prev_right_edge = BLF_width(fstyle->uifont_id, drawstr + but->ofs, pos);
}
has_prev = true;
}
}
@ -2066,9 +2071,7 @@ static void widget_draw_text(const uiFontStyle *fstyle,
int next_left_edge = 0;
bool has_next = false;
if (pos < strlen(drawstr)) {
if (BLF_str_offset_to_glyph_bounds(
fstyle->uifont_id, drawstr + but->ofs, pos, &bounds) &&
!BLI_rcti_is_empty(&bounds))
if (BLF_str_offset_to_glyph_bounds(fstyle->uifont_id, drawstr + but->ofs, pos, &bounds))
{
next_left_edge = bounds.xmin;
has_next = true;