Fix "fill" justification in RichTextLabel to only affect lines that have automatically wrapped.
This commit is contained in:
parent
13582354fd
commit
0ce185629d
|
@ -220,13 +220,14 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
|
||||||
case ALIGN_LEFT: l.offset_caches.push_back(0); break; \
|
case ALIGN_LEFT: l.offset_caches.push_back(0); break; \
|
||||||
case ALIGN_CENTER: l.offset_caches.push_back(((p_width - margin) - used) / 2); break; \
|
case ALIGN_CENTER: l.offset_caches.push_back(((p_width - margin) - used) / 2); break; \
|
||||||
case ALIGN_RIGHT: l.offset_caches.push_back(((p_width - margin) - used)); break; \
|
case ALIGN_RIGHT: l.offset_caches.push_back(((p_width - margin) - used)); break; \
|
||||||
case ALIGN_FILL: l.offset_caches.push_back((p_width - margin) - used /*+spaces_size*/); break; \
|
case ALIGN_FILL: l.offset_caches.push_back(line_wrapped ? ((p_width - margin) - used) : 0); break; \
|
||||||
} \
|
} \
|
||||||
l.height_caches.push_back(line_height); \
|
l.height_caches.push_back(line_height); \
|
||||||
l.ascent_caches.push_back(line_ascent); \
|
l.ascent_caches.push_back(line_ascent); \
|
||||||
l.descent_caches.push_back(line_descent); \
|
l.descent_caches.push_back(line_descent); \
|
||||||
l.space_caches.push_back(spaces); \
|
l.space_caches.push_back(spaces); \
|
||||||
} \
|
} \
|
||||||
|
line_wrapped = false; \
|
||||||
y += line_height + get_constant(SceneStringNames::get_singleton()->line_separation); \
|
y += line_height + get_constant(SceneStringNames::get_singleton()->line_separation); \
|
||||||
line_height = 0; \
|
line_height = 0; \
|
||||||
line_ascent = 0; \
|
line_ascent = 0; \
|
||||||
|
@ -254,6 +255,7 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
|
||||||
l.minimum_width = MAX(l.minimum_width, m_width); \
|
l.minimum_width = MAX(l.minimum_width, m_width); \
|
||||||
} \
|
} \
|
||||||
if (wofs + m_width > p_width) { \
|
if (wofs + m_width > p_width) { \
|
||||||
|
line_wrapped = true; \
|
||||||
if (p_mode == PROCESS_CACHE) { \
|
if (p_mode == PROCESS_CACHE) { \
|
||||||
if (spaces > 0) \
|
if (spaces > 0) \
|
||||||
spaces -= 1; \
|
spaces -= 1; \
|
||||||
|
@ -298,6 +300,7 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
|
||||||
int rchar = 0;
|
int rchar = 0;
|
||||||
int lh = 0;
|
int lh = 0;
|
||||||
bool line_is_blank = true;
|
bool line_is_blank = true;
|
||||||
|
bool line_wrapped = false;
|
||||||
int fh = 0;
|
int fh = 0;
|
||||||
|
|
||||||
while (it) {
|
while (it) {
|
||||||
|
|
Loading…
Reference in New Issue