浏览代码

correctly wrap lines longer than width in richtextlabel, fixes #4735

Juan Linietsky 9 年之前
父节点
当前提交
c204170232
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      scene/gui/rich_text_label.cpp

+ 7 - 0
scene/gui/rich_text_label.cpp

@@ -278,6 +278,11 @@ if (m_height > line_height) {\
 						if (c[end]=='\t') {
 						if (c[end]=='\t') {
 							cw=tab_size*font->get_char_size(' ').width;
 							cw=tab_size*font->get_char_size(' ').width;
 						}
 						}
+
+						if (end>0 && w+cw+begin > p_width ) {
+							break; //don't allow lines longer than assigned width
+						}
+
 						w+=cw;
 						w+=cw;
 
 
 						if (c[end]==' ') {
 						if (c[end]==' ') {
@@ -340,10 +345,12 @@ if (m_height > line_height) {\
 
 
 
 
 								int cw=font->get_char_size(c[i],c[i+1]).x;
 								int cw=font->get_char_size(c[i],c[i+1]).x;
+
 								if (c[i]=='\t') {
 								if (c[i]=='\t') {
 									cw=tab_size*font->get_char_size(' ').width;
 									cw=tab_size*font->get_char_size(' ').width;
 								}
 								}
 
 
+
 								if (p_click_pos.x-cw/2>p_ofs.x+align_ofs+pofs) {
 								if (p_click_pos.x-cw/2>p_ofs.x+align_ofs+pofs) {
 
 
 									rchar=int((&c[i])-cf);
 									rchar=int((&c[i])-cf);