Преглед изворни кода

Fix more regressions in RichTextLabel from PR 15711

Bernhard Liebl пре 7 година
родитељ
комит
0e1e95c41f
1 измењених фајлова са 5 додато и 9 уклоњено
  1. 5 9
      scene/gui/rich_text_label.cpp

+ 5 - 9
scene/gui/rich_text_label.cpp

@@ -247,6 +247,7 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
 	int rchar = 0;
 	int lh = 0;
 	bool line_is_blank = true;
+	int fh = 0;
 
 	while (it) {
 
@@ -262,14 +263,9 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
 
 				const CharType *c = text->text.c_str();
 				const CharType *cf = c;
-				int fh = font->get_height();
 				int ascent = font->get_ascent();
 				int descent = font->get_descent();
 
-				line_ascent = MAX(line_ascent, ascent);
-				line_descent = MAX(line_descent, descent);
-				fh = MAX(fh, line_ascent + line_descent); // various fonts!
-
 				Color color;
 				bool underline = false;
 
@@ -317,12 +313,12 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
 						end++;
 					}
 
+					CHECK_HEIGHT(fh);
 					ENSURE_WIDTH(w);
 
-					if (p_mode == PROCESS_CACHE) {
-						line_ascent = ascent;
-						line_descent = descent;
-					}
+					line_ascent = MAX(line_ascent, ascent);
+					line_descent = MAX(line_descent, descent);
+					fh = line_ascent + line_descent;
 
 					if (end && c[end - 1] == ' ') {
 						if (p_mode == PROCESS_CACHE) {