mirror of https://github.com/godotengine/godot
[TextServer] Fix space trimming on line break.
This commit is contained in:
parent
750640cede
commit
c03aa4b563
|
|
@ -847,7 +847,7 @@ PackedInt32Array TextServer::shaped_text_get_line_breaks_adv(const RID &p_shaped
|
|||
if (last_end <= l_gl[start_pos].start) {
|
||||
lines.push_back(l_gl[start_pos].start);
|
||||
lines.push_back(l_gl[end_pos].end);
|
||||
cur_safe_brk = end_pos;
|
||||
cur_safe_brk = last_safe_break;
|
||||
last_end = l_gl[end_pos].end;
|
||||
}
|
||||
trim_next = true;
|
||||
|
|
@ -1021,7 +1021,7 @@ PackedInt32Array TextServer::shaped_text_get_line_breaks(const RID &p_shaped, do
|
|||
if (p_width > indent) {
|
||||
l_width = p_width - indent;
|
||||
}
|
||||
cur_safe_brk = end_pos;
|
||||
cur_safe_brk = last_safe_break;
|
||||
last_end = l_gl[end_pos].end;
|
||||
}
|
||||
trim_next = true;
|
||||
|
|
|
|||
|
|
@ -596,6 +596,19 @@ TEST_SUITE("[TextServer]") {
|
|||
CHECK_FALSE_MESSAGE(brks[5] != 14, "Invalid line break position.");
|
||||
}
|
||||
|
||||
brks = ts->shaped_text_get_line_breaks(ctx, 35.0, 0, TextServer::BREAK_WORD_BOUND | TextServer::BREAK_MANDATORY | TextServer::BREAK_TRIM_EDGE_SPACES);
|
||||
CHECK_FALSE_MESSAGE(brks.size() != 6, "Invalid line breaks number.");
|
||||
if (brks.size() == 6) {
|
||||
CHECK_FALSE_MESSAGE(brks[0] != 0, "Invalid line break position.");
|
||||
CHECK_FALSE_MESSAGE(brks[1] != 4, "Invalid line break position.");
|
||||
|
||||
CHECK_FALSE_MESSAGE(brks[2] != 5, "Invalid line break position.");
|
||||
CHECK_FALSE_MESSAGE(brks[3] != 9, "Invalid line break position.");
|
||||
|
||||
CHECK_FALSE_MESSAGE(brks[4] != 10, "Invalid line break position.");
|
||||
CHECK_FALSE_MESSAGE(brks[5] != 14, "Invalid line break position.");
|
||||
}
|
||||
|
||||
ts->free_rid(ctx);
|
||||
|
||||
for (int j = 0; j < font.size(); j++) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue