diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2010-03-29 10:53:22 -0400 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2010-03-29 10:53:22 -0400 |
commit | 783eb286a67e6f9ace5561073a16c9c1b7f1ade5 (patch) | |
tree | 1b4a6d5a81527202860d3cfc217c30d4e1a67880 /indra/newview/llnearbychathandler.cpp | |
parent | f428d62c93f2cd2817e055fce7db49410e8324d6 (diff) | |
parent | 61657d2e7904ba7274a0ab5d451669d2ee7bb7cc (diff) |
merge
Diffstat (limited to 'indra/newview/llnearbychathandler.cpp')
-rw-r--r-- | indra/newview/llnearbychathandler.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index 08ae93c3a6..e199f9f180 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -268,24 +268,23 @@ void LLNearbyChatScreenChannel::showToastsBottom() } break; } - else - { - toast_rect = toast->getRect(); - toast_rect.setLeftTopAndSize(getRect().mLeft , toast_top, toast_rect.getWidth() ,toast_rect.getHeight()); - - toast->setRect(toast_rect); - toast->setIsHidden(false); - toast->setVisible(TRUE); + bottom = toast_top - toast->getTopPad(); + } - if(!toast->hasFocus()) - { - // Fixing Z-order of toasts (EXT-4862) - // Next toast will be positioned under this one. - gFloaterView->sendChildToBack(toast); - } - - bottom = toast->getRect().mTop - toast->getTopPad(); - } + // use reverse order to provide correct z-order and avoid toast blinking + for(std::vector<LLToast*>::reverse_iterator it = m_active_toasts.rbegin(); it != m_active_toasts.rend(); ++it) + { + LLToast* toast = (*it); + S32 toast_top = bottom + toast->getTopPad(); + + toast_rect = toast->getRect(); + toast_rect.setLeftTopAndSize(getRect().mLeft , toast_top, toast_rect.getWidth() ,toast_rect.getHeight()); + + toast->setRect(toast_rect); + toast->setIsHidden(false); + toast->setVisible(TRUE); + + bottom = toast->getRect().mBottom - margin; } } |