From dc88effc24e533bd96c5e88de07720b347689f14 Mon Sep 17 00:00:00 2001 From: richard Date: Mon, 23 Nov 2009 11:44:03 -0800 Subject: fix for infinite loop when doing /me emotes reviewed by Mark --- indra/llui/lltextbase.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra/llui/lltextbase.cpp') diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index e210667764..3619b36c0d 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -60,6 +60,11 @@ LLTextBase::line_info::line_info(S32 index_start, S32 index_end, LLRect rect, S3 bool LLTextBase::compare_segment_end::operator()(const LLTextSegmentPtr& a, const LLTextSegmentPtr& b) const { + // sort empty spans (e.g. 11-11) after previous non-empty spans (e.g. 5-11) + if (a->getEnd() == b->getEnd()) + { + return a->getStart() < b->getStart(); + } return a->getEnd() < b->getEnd(); } -- cgit v1.2.3 From 0ef5b128aa4076be7cad424337d52ca5577aebdf Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Tue, 24 Nov 2009 13:17:19 +0200 Subject: Work on critical sub-task EXT-2615 (IM Chat History is severely broken) -- Improved calculating of the LLTextBase::mContentsRect to take into account "left" coordinate. Previous implementation just ignored it. --HG-- branch : product-engine --- indra/llui/lltextbase.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/llui/lltextbase.cpp') diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index e210667764..ab1006ffd7 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -2060,16 +2060,16 @@ void LLTextBase::updateRects() mContentsRect.unionWith(line_iter->mRect); } - mContentsRect.mLeft = 0; + S32 delta_pos_x = -mContentsRect.mLeft; mContentsRect.mTop += mVPad; S32 delta_pos = -mContentsRect.mBottom; // move line segments to fit new document rect for (line_list_t::iterator it = mLineInfoList.begin(); it != mLineInfoList.end(); ++it) { - it->mRect.translate(0, delta_pos); + it->mRect.translate(delta_pos_x, delta_pos); } - mContentsRect.translate(0, delta_pos); + mContentsRect.translate(delta_pos_x, delta_pos); } // update document container dimensions according to text contents -- cgit v1.2.3