diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llchatitemscontainerctrl.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llfloatersnapshot.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llnearbychatbar.cpp | 10 | ||||
-rw-r--r-- | indra/newview/llnearbychatbar.h | 2 | ||||
-rw-r--r-- | indra/newview/llnearbychathandler.cpp | 2 | ||||
-rw-r--r-- | indra/newview/lltoolbarview.cpp | 27 |
6 files changed, 38 insertions, 10 deletions
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp index 8584885bc9..9a84280f25 100644 --- a/indra/newview/llchatitemscontainerctrl.cpp +++ b/indra/newview/llchatitemscontainerctrl.cpp @@ -35,6 +35,7 @@ #include "llfloaterreg.h" #include "lllocalcliprect.h" #include "lltrans.h" +#include "llnearbychatbar.h" #include "llviewercontrol.h" #include "llagentdata.h" @@ -315,12 +316,12 @@ BOOL LLNearbyChatToastPanel::handleMouseUp (S32 x, S32 y, MASK mask) return TRUE; else { - LLFloaterReg::showInstance("nearby_chat",LLSD()); + LLNearbyChatBar::getInstance()->showHistory(); return FALSE; } } - LLFloaterReg::showInstance("nearby_chat",LLSD()); + LLNearbyChatBar::getInstance()->showHistory(); return LLPanel::handleMouseUp(x,y,mask); } diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 9d020517d8..8105844b0d 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -2217,7 +2217,7 @@ void LLFloaterSnapshot::draw() LLFloater::draw(); - if (previewp) + if (previewp && !isMinimized()) { if(previewp->getThumbnailImage()) { diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 3073a19d83..cd84275ef0 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -135,6 +135,16 @@ LLNearbyChatBar* LLNearbyChatBar::getInstance() return LLFloaterReg::getTypedInstance<LLNearbyChatBar>("chat_bar"); } +void LLNearbyChatBar::showHistory() +{ + if (!getChildView("nearby_chat")->getVisible()) + { + onToggleNearbyChatPanel(); + } + + openFloater(); +} + void LLNearbyChatBar::draw() { displaySpeakingIndicator(); diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h index a6fd6e5665..5a7edac1bb 100644 --- a/indra/newview/llnearbychatbar.h +++ b/indra/newview/llnearbychatbar.h @@ -59,6 +59,8 @@ public: static void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate); static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate); + void showHistory(); + protected: static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str); static void onChatBoxKeystroke(LLLineEditor* caller, void* userdata); diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index dcf444b048..7503164fe6 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -581,7 +581,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, // WARNING - not sChatWatcher->post(notification); - if( nearby_chat->getVisible() + if( chat_bar->getVisible() && nearby_chat->getVisible() || ( chat_msg.mSourceType == CHAT_SOURCE_AGENT && gSavedSettings.getBOOL("UseChatBubbles") ) || !mChannel->getShowToasts() ) // to prevent toasts in Busy mode diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 8ae9328f6d..86f6477710 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -406,20 +406,35 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t if (command) { // Convert the (x,y) position in rank in toolbar - int rank = 0; + int new_rank = LLToolBar::RANK_NONE; if (!toolbar->isReadOnly()) { - rank = toolbar->getRankFromPosition(x,y); + new_rank = toolbar->getRankFromPosition(x,y); } // Suppress the command from the toolbars (including the one it's dropped in, // this will handle move position). - gToolBarView->mToolbarLeft->removeCommand(command_id); - gToolBarView->mToolbarRight->removeCommand(command_id); - gToolBarView->mToolbarBottom->removeCommand(command_id); + int old_rank = LLToolBar::RANK_NONE; + int rank; + if ((rank = gToolBarView->mToolbarLeft->removeCommand(command_id)) != LLToolBar::RANK_NONE) + { + old_rank = rank; + } + if ((rank = gToolBarView->mToolbarRight->removeCommand(command_id)) != LLToolBar::RANK_NONE) + { + old_rank = rank; + } + if ((rank = gToolBarView->mToolbarBottom->removeCommand(command_id)) != LLToolBar::RANK_NONE) + { + old_rank = rank; + } // Now insert it in the toolbar at the detected rank if (!toolbar->isReadOnly()) { - toolbar->addCommand(command->id(),rank); + if ((old_rank != LLToolBar::RANK_NONE) && (old_rank < new_rank)) + { + new_rank -= 1; + } + toolbar->addCommand(command->id(),new_rank); } } else |