[TextServer] Ignore language of embedded object replacement spans when updating line breaks.
This commit is contained in:
parent
92a90a8e6f
commit
149ecbcbfd
1 changed files with 6 additions and 1 deletions
|
|
@ -6270,13 +6270,18 @@ bool TextServerAdvanced::_shaped_text_update_breaks(const RID &p_shaped) {
|
|||
int i = 0;
|
||||
int span_size = sd->spans.size();
|
||||
while (i < span_size) {
|
||||
bool start_with_obj = sd->spans[i].embedded_key != Variant();
|
||||
String language = sd->spans[i].language;
|
||||
int r_start = sd->spans[i].start;
|
||||
if (r_start == sd->spans[i].end) {
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
while (i + 1 < span_size && (language == sd->spans[i + 1].language || sd->spans[i + 1].start == sd->spans[i + 1].end)) {
|
||||
while (i + 1 < span_size && (language == sd->spans[i + 1].language || start_with_obj || sd->spans[i + 1].embedded_key != Variant() || sd->spans[i + 1].start == sd->spans[i + 1].end)) {
|
||||
if (start_with_obj && sd->spans[i + 1].embedded_key == Variant()) {
|
||||
language = sd->spans[i + 1].language;
|
||||
start_with_obj = false;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
int r_end = sd->spans[i].end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue