diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2016-12-08 14:27:40 -0500 |
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2016-12-08 14:27:40 -0500 |
| commit | b6dc755786fb06ab109eb36f402a25edaf24ce14 (patch) | |
| tree | 04f465dd42a555f15bf2729ad4a2fcea181db1c9 /indra/newview/llchatitemscontainerctrl.cpp | |
| parent | 5bb456d80cfbcdfe87526510f3b8297d315afdd8 (diff) | |
| parent | a65b586b184d9837e0586b4df0d2e758ccce63f6 (diff) | |
Automated merge with ssh://bitbucket.org/lindenlab/viewer-skip-llcorehttp-test
Diffstat (limited to 'indra/newview/llchatitemscontainerctrl.cpp')
| -rw-r--r-- | indra/newview/llchatitemscontainerctrl.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp index cfc62c07b6..f5721fb348 100644 --- a/indra/newview/llchatitemscontainerctrl.cpp +++ b/indra/newview/llchatitemscontainerctrl.cpp @@ -240,6 +240,32 @@ void LLFloaterIMNearbyChatToastPanel::init(LLSD& notification) } } + S32 chars_in_line = mMsgText->getRect().getWidth() / messageFont->getWidth("c"); + S32 max_lines = notification["available_height"].asInteger() / (mMsgText->getTextPixelHeight() + 4); + S32 new_line_chars = std::count(messageText.begin(), messageText.end(), '\n'); + S32 lines_count = (messageText.size() - new_line_chars) / chars_in_line + new_line_chars + 1; + + //Remove excessive chars if message is not fit in available height. MAINT-6891 + if(lines_count > max_lines) + { + while(lines_count > max_lines) + { + std::size_t nl_pos = messageText.rfind('\n'); + if (nl_pos != std::string::npos) + { + nl_pos = nl_pos > messageText.length() - chars_in_line? nl_pos : messageText.length() - chars_in_line; + messageText.erase(messageText.begin() + nl_pos, messageText.end()); + } + else + { + messageText.erase(messageText.end() - chars_in_line, messageText.end()); + } + new_line_chars = std::count(messageText.begin(), messageText.end(), '\n'); + lines_count = (messageText.size() - new_line_chars) / chars_in_line + new_line_chars; + } + messageText += " ..."; + } + //append text { LLStyle::Params style_params; |
