From 43cdebefa620c0fe8ad4f9db846d92061134e3f9 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 4 Jan 2010 14:03:02 -0800 Subject: EXT-3318 LLConsole keeps all logged text in memory when console is not being drawn. --- indra/llui/llconsole.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'indra/llui/llconsole.cpp') diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index fa0abd55d0..c9090d388d 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -392,4 +392,10 @@ void LLConsole::addLine(const LLWString& wline, F32 size, const LLColor4 &color) Paragraph paragraph(wline, color, mTimer.getElapsedTimeF32(), mFont, (F32)getRect().getWidth() ); mParagraphs.push_back ( paragraph ); + + // remove old paragraphs which can't possibly be visible any more. ::draw() will do something similar but more conservative - we do this here because ::draw() isn't guaranteed to ever be called! (i.e. the console isn't visible) + while ((S32)mParagraphs.size() > llmax((S32)0, (S32)(mMaxLines))) + { + mParagraphs.pop_front(); + } } -- cgit v1.2.3 From 1bbd259f2d009a807a09aea15d01d0872f8b1cad Mon Sep 17 00:00:00 2001 From: richard Date: Wed, 6 Jan 2010 11:17:38 -0800 Subject: EXT-3878 - Menus disappear when UI Size is < 1.00 EXT-3647 - Auto-scrolling of IMs should resume when user types in chat EXT-3877 - Pinning two levels of menus prevents movement using arrow keys EXT-1303 - Hyperlink text wraps in the middle of a word reviewed by James --- indra/llui/llconsole.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra/llui/llconsole.cpp') diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index fa0abd55d0..7248581ec6 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -331,6 +331,11 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, b } U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, TRUE); + if (drawable == 0) + { + // try again without wrapping on word boundaries + drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, FALSE); + } if (drawable != 0) { -- cgit v1.2.3 From 49660730308fb6d5301d1617402a353a21e9d9be Mon Sep 17 00:00:00 2001 From: richard Date: Wed, 6 Jan 2010 12:23:56 -0800 Subject: moved clipping logic inside LLFontGL::maxDrawableChars controlled by EWordWrapStyle fixes regression introduced in 3eef5ce9ae1e6fc62b9b52ce859501dd4e70fadf reviewed by Brad --- indra/llui/llconsole.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'indra/llui/llconsole.cpp') diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index 7248581ec6..f69e935754 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -330,12 +330,7 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, b skip_chars = 0; } - U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, TRUE); - if (drawable == 0) - { - // try again without wrapping on word boundaries - drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, FALSE); - } + U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, LLFontGL::WORD_BOUNDARY_IF_POSSIBLE); if (drawable != 0) { -- cgit v1.2.3