diff options
Diffstat (limited to 'indra/llui/lltexteditor.cpp')
| -rw-r--r-- | indra/llui/lltexteditor.cpp | 33 | 
1 files changed, 23 insertions, 10 deletions
| diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 3ce5a0320b..3f4ef24f82 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -311,12 +311,12 @@ LLTextEditor::~LLTextEditor()  // LLTextEditor  // Public methods -void LLTextEditor::setText(const LLStringExplicit &utf8str) +void LLTextEditor::setText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params)  {  	blockUndo();  	deselect(); -	LLTextBase::setText(utf8str); +	LLTextBase::setText(utf8str, input_params);  	resetDirty();  } @@ -750,8 +750,10 @@ BOOL LLTextEditor::handleHover(S32 x, S32 y, MASK mask)  	{  		if( mIsSelecting )   		{ -			mScroller->autoScroll(x, y); - +			if(mScroller) +			{	 +				mScroller->autoScroll(x, y); +			}  			S32 clamped_x = llclamp(x, mTextRect.mLeft, mTextRect.mRight);  			S32 clamped_y = llclamp(y, mTextRect.mBottom, mTextRect.mTop);  			setCursorAtLocalPos( clamped_x, clamped_y, true ); @@ -799,7 +801,10 @@ BOOL LLTextEditor::handleMouseUp(S32 x, S32 y, MASK mask)  	{  		if( mIsSelecting )  		{ -			mScroller->autoScroll(x, y); +			if(mScroller) +			{ +				mScroller->autoScroll(x, y); +			}  			S32 clamped_x = llclamp(x, mTextRect.mLeft, mTextRect.mRight);  			S32 clamped_y = llclamp(y, mTextRect.mBottom, mTextRect.mTop);  			setCursorAtLocalPos( clamped_x, clamped_y, true ); @@ -1696,7 +1701,15 @@ BOOL LLTextEditor::handleKeyHere(KEY key, MASK mask )  	*/  	if (mReadOnly)  	{ -		handled = mScroller->handleKeyHere( key, mask ); +		if(mScroller) +		{ +			handled = mScroller->handleKeyHere( key, mask ); +		} +		else  +		{ +			handled = handleNavigationKey( key, mask ); +		} +  	}  	else  	{ @@ -2005,7 +2018,8 @@ void LLTextEditor::setEnabled(BOOL enabled)  	bool read_only = !enabled;  	if (read_only != mReadOnly)  	{ -		mReadOnly = read_only; +		//mReadOnly = read_only; +		LLTextBase::setReadOnly(read_only);  		updateSegments();  		updateAllowingLanguageInput();  	} @@ -2134,9 +2148,8 @@ void LLTextEditor::drawPreeditMarker()  void LLTextEditor::drawLineNumbers()  {  	LLGLSUIDefault gls_ui; - -	LLRect scrolled_view_rect = mScroller->getVisibleContentRect(); -	LLRect content_rect = mScroller->getContentWindowRect(); +	LLRect scrolled_view_rect = getVisibleDocumentRect(); +	LLRect content_rect = getTextRect();	  	LLLocalClipRect clip(content_rect);  	S32 first_line = getFirstVisibleLine();  	S32 num_lines = getLineCount(); | 
