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_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_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.ascent_caches.push_back(line_ascent); \
|
||||
l.descent_caches.push_back(line_descent); \
|
||||
l.space_caches.push_back(spaces); \
|
||||
} \
|
||||
line_wrapped = false; \
|
||||
y += line_height + get_constant(SceneStringNames::get_singleton()->line_separation); \
|
||||
line_height = 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); \
|
||||
} \
|
||||
if (wofs + m_width > p_width) { \
|
||||
line_wrapped = true; \
|
||||
if (p_mode == PROCESS_CACHE) { \
|
||||
if (spaces > 0) \
|
||||
spaces -= 1; \
|
||||
|
@ -298,6 +300,7 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
|
|||
int rchar = 0;
|
||||
int lh = 0;
|
||||
bool line_is_blank = true;
|
||||
bool line_wrapped = false;
|
||||
int fh = 0;
|
||||
|
||||
while (it) {
|
||||
|
|
Loading…
Reference in New Issue