Kaynağa Gözat

Calculate word wrap only if width changed on resize

Ivan Safrin 12 yıl önce
ebeveyn
işleme
fcdad51bf1

+ 2 - 0
Modules/Contents/UI/Include/PolyUITextInput.h

@@ -514,6 +514,8 @@ namespace Polycode {
 			
 			
 			Core *core;
 			Core *core;
 			
 			
+			Number lastResizeWidth;
+			
 			Number _newWidth;
 			Number _newWidth;
 			Number _newHeight;
 			Number _newHeight;
 			bool didMultilineResize;
 			bool didMultilineResize;

+ 6 - 1
Modules/Contents/UI/Source/PolyUITextInput.cpp

@@ -654,8 +654,11 @@ void UITextInput::setSyntaxHighlighter(UITextInputSyntaxHighlighter *syntaxHighl
 }
 }
 
 
 void UITextInput::doMultilineResize() {
 void UITextInput::doMultilineResize() {
+
 	if(multiLine) {
 	if(multiLine) {
-		updateWordWrap(0, lines.size()-1);
+		if(width != lastResizeWidth) {	
+			updateWordWrap(0, lines.size()-1);
+		}
 		renumberLines();
 		renumberLines();
 		restructLines();		
 		restructLines();		
 		readjustBuffer();
 		readjustBuffer();
@@ -664,6 +667,8 @@ void UITextInput::doMultilineResize() {
 		}
 		}
 	}
 	}
 	
 	
+	lastResizeWidth = width;
+		
 	didMultilineResize = true;
 	didMultilineResize = true;
 	
 	
 	if(hasSelection) {
 	if(hasSelection) {