diff options
Diffstat (limited to 'indra/newview/llnearbychathandler.cpp')
-rw-r--r-- | indra/newview/llnearbychathandler.cpp | 66 |
1 files changed, 16 insertions, 50 deletions
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index dfbbaa0941..cebfac86e7 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -121,7 +121,7 @@ protected: if (!toast) return; LL_DEBUGS("NearbyChat") << "Pooling toast" << llendl; toast->setVisible(FALSE); - toast->stopFading(); + toast->stopTimer(); toast->setIsHidden(true); // Nearby chat toasts that are hidden, not destroyed. They are collected to the toast pool, so that @@ -165,20 +165,11 @@ public: : LLToast(p), mNearbyChatScreenChannelp(nc_channelp) { - updateTransparency(); - setMouseEnterCallback(boost::bind(&LLNearbyChatToast::updateTransparency, this)); - setMouseLeaveCallback(boost::bind(&LLNearbyChatToast::updateTransparency, this)); } /*virtual*/ void onClose(bool app_quitting); - /*virtual*/ void setBackgroundOpaque(BOOL b); - -protected: - /*virtual*/ void setTransparentState(bool transparent); private: - void updateTransparency(); - LLNearbyChatScreenChannel* mNearbyChatScreenChannelp; }; @@ -305,7 +296,7 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification) { panel->addMessage(notification); toast->reshapeToPanel(); - toast->startFading(); + toast->startTimer(); arrangeToasts(); return; @@ -350,7 +341,7 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification) panel->init(notification); toast->reshapeToPanel(); - toast->startFading(); + toast->startTimer(); m_active_toasts.push_back(toast->getHandle()); @@ -391,7 +382,10 @@ void LLNearbyChatScreenChannel::showToastsBottom() return; LLRect toast_rect; - S32 bottom = getRect().mBottom; + updateBottom(); + S32 channel_bottom = getRect().mBottom; + + S32 bottom = channel_bottom; S32 margin = gSavedSettings.getS32("ToastGap"); //sort active toasts @@ -523,6 +517,14 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args) } nearby_chat->addMessage(chat_msg, true, args); + + if(chat_msg.mSourceType == CHAT_SOURCE_AGENT + && chat_msg.mFromID.notNull() + && chat_msg.mFromID != gAgentID) + { + LLFirstUse::otherAvatarChatFirst(); + } + if( nearby_chat->getVisible() || ( chat_msg.mSourceType == CHAT_SOURCE_AGENT && gSavedSettings.getBOOL("UseChatBubbles") ) ) @@ -582,13 +584,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args) notification["font_size"] = (S32)LLViewerChat::getChatFontSize() ; channel->addNotification(notification); } - - if(chat_msg.mSourceType == CHAT_SOURCE_AGENT - && chat_msg.mFromID.notNull() - && chat_msg.mFromID != gAgentID) - { - LLFirstUse::otherAvatarChatFirst(); - } + } void LLNearbyChatHandler::onDeleteToast(LLToast* toast) @@ -606,34 +602,4 @@ void LLNearbyChatToast::onClose(bool app_quitting) mNearbyChatScreenChannelp->onToastDestroyed(this, app_quitting); } -// virtual -void LLNearbyChatToast::setBackgroundOpaque(BOOL b) -{ - // We don't want background changes: transparency is handled differently. - LLToast::setBackgroundOpaque(TRUE); -} - -// virtual -void LLNearbyChatToast::setTransparentState(bool transparent) -{ - LLToast::setTransparentState(transparent); - updateTransparency(); -} - -void LLNearbyChatToast::updateTransparency() -{ - ETypeTransparency transparency_type; - - if (isHovered()) - { - transparency_type = TT_ACTIVE; - } - else - { - transparency_type = getTransparentState() ? TT_FADING : TT_INACTIVE; - } - - LLFloater::updateTransparency(transparency_type); -} - // EOF |