diff options
Diffstat (limited to 'indra/llui')
| -rw-r--r-- | indra/llui/lltextbase.cpp | 32 | 
1 files changed, 31 insertions, 1 deletions
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index e64078828b..75eb274603 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1015,7 +1015,37 @@ BOOL LLTextBase::handleMouseDown(S32 x, S32 y, MASK mask)  	// handle triple click  	if (!mTripleClickTimer.hasExpired())  	{ -		selectAll(); +		S32 real_line = getLineNumFromDocIndex(mCursorPos, false); +		S32 line_start = -1; +		S32 line_end = -1; +		for (line_list_t::const_iterator it = mLineInfoList.begin(), end_it = mLineInfoList.end(); +				it != end_it; +				++it) +		{ +			if (it->mLineNum < real_line) +			{ +				continue; +			} +			if (it->mLineNum > real_line) +			{ +				break; +			} +			if (line_start == -1) +			{ +				line_start = it->mDocIndexStart; +			} +			line_end = it->mDocIndexEnd; +		} + +		if (line_start == -1) +		{ +			return TRUE; +		} + +		mSelectionEnd = line_start; +		mSelectionStart = line_end; +		setCursorPos(line_start); +  		return TRUE;  	}  | 
