diff options
-rw-r--r-- | indra/llui/lltextbase.cpp | 9 | ||||
-rw-r--r-- | indra/llui/llui.cpp | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 851fb966ec..48aa406901 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -396,8 +396,13 @@ void LLTextBase::drawSelectionBackground() ++rect_it) { LLRect selection_rect = *rect_it; - selection_rect.translate(mVisibleTextRect.mLeft - content_display_rect.mLeft, mVisibleTextRect.mBottom - content_display_rect.mBottom); - gl_rect_2d(selection_rect, selection_color); + // Don't send empty rects to gl_rect_2d. + // Drawing degenerate rectangles seems to cause https://jira.secondlife.com/browse/EXT-6276 . + if(selection_rect.notEmpty()) + { + selection_rect.translate(mVisibleTextRect.mLeft - content_display_rect.mLeft, mVisibleTextRect.mBottom - content_display_rect.mBottom); + gl_rect_2d(selection_rect, selection_color); + } } } } diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index 5121ef5351..9134adc6d1 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -202,6 +202,11 @@ void gl_rect_2d_offset_local( S32 left, S32 top, S32 right, S32 bottom, S32 pixe void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled ) { + // FIXME: Drawing degenerate rectangles (specifically, zero-width rectangles) was causing + // https://jira.secondlife.com/browse/EXT-6276 on the Mac (presumably it was doing something bad to the GL state). + // That was fixed by checking for this case in LLTextBase::drawSelectionBackground(). + // It's possible we should check for degenerate rectangles here and not draw, but I wanted to do the minimal change for the moment. + stop_glerror(); gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |