diff options
author | Seth ProductEngine <slitovchuk@productengine.com> | 2011-10-18 22:57:52 +0300 |
---|---|---|
committer | Seth ProductEngine <slitovchuk@productengine.com> | 2011-10-18 22:57:52 +0300 |
commit | f407d4b763107ca371400b1914a036c38780b677 (patch) | |
tree | a9cc67bc1c442febc6d95419e8c39462110336da /indra/newview | |
parent | 30527b2206e7fce2890c3c44825ff0bef85aa5a0 (diff) |
EXP-1360 FIXED closing group call/IM window when voice controls floater closes.
Restored voice controls floater as a transient floater.
The fix should not cause the regression of EXP-1299 (Nearby Voice floater can't be closed by clicking the sidebar button again).
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llcallfloater.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llcallfloater.h | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 5ad2a560bc..e3217668c5 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -44,6 +44,7 @@ #include "llparticipantlist.h" #include "llspeakers.h" #include "lltextutil.h" +#include "lltransientfloatermgr.h" #include "llviewercontrol.h" #include "llviewerdisplayname.h" #include "llviewerwindow.h" @@ -96,7 +97,7 @@ static void* create_non_avatar_caller(void*) LLVoiceChannel* LLCallFloater::sCurrentVoiceChannel = NULL; LLCallFloater::LLCallFloater(const LLSD& key) -: LLFloater(key) +: LLTransientDockableFloater(NULL, false, key) , mSpeakerManager(NULL) , mParticipants(NULL) , mAvatarList(NULL) @@ -112,6 +113,7 @@ LLCallFloater::LLCallFloater(const LLSD& key) mFactoryMap["non_avatar_caller"] = LLCallbackMap(create_non_avatar_caller, NULL); LLVoiceClient::instance().addObserver(this); + LLTransientFloaterMgr::getInstance()->addControlView(this); // update the agent's name if display name setting change LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLCallFloater::updateAgentModeratorState, this)); @@ -134,6 +136,7 @@ LLCallFloater::~LLCallFloater() { LLVoiceClient::getInstance()->removeObserver(this); } + LLTransientFloaterMgr::getInstance()->removeControlView(this); } // virtual diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index 7282f7a8be..00a3f76e56 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -28,7 +28,7 @@ #ifndef LL_LLCALLFLOATER_H #define LL_LLCALLFLOATER_H -#include "llfloater.h" +#include "lltransientdockablefloater.h" #include "llvoicechannel.h" #include "llvoiceclient.h" @@ -52,7 +52,7 @@ class LLSpeakersDelayActionsStorage; * When the Resident is engaged in any chat except Nearby Chat, the Voice Control Panel * also provides a 'Leave Call' button to allow the Resident to leave that voice channel. */ -class LLCallFloater : public LLFloater, LLVoiceClientParticipantObserver +class LLCallFloater : public LLTransientDockableFloater, LLVoiceClientParticipantObserver { public: @@ -262,6 +262,9 @@ private: */ static LLVoiceChannel* sCurrentVoiceChannel; + /* virtual */ + LLTransientFloaterMgr::ETransientGroup getGroup() { return LLTransientFloaterMgr::IM; } + boost::signals2::connection mVoiceChannelStateChangeConnection; }; |