EXT-3667 Usability : Returning back from mousehook does not set the user back to See as Avatar

--HG--
branch : product-engine
master
Igor Borovkov 2010-01-05 15:47:12 +02:00
parent 5043fcce37
commit 7669c07572
3 changed files with 12 additions and 23 deletions

View File

@ -2812,7 +2812,7 @@ void LLAgent::endAnimationUpdateUI()
LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
LLFloaterCamera::toPrevModeIfInAvatarViewMode();
LLFloaterCamera::onLeavingMouseLook();
// Only pop if we have pushed...
if (TRUE == mViewsPushed)
@ -2915,10 +2915,6 @@ void LLAgent::endAnimationUpdateUI()
// JC - Added for always chat in third person option
gFocusMgr.setKeyboardFocus(NULL);
//Making sure Camera Controls floater is in the right state
//when entering Mouse Look using wheel scrolling
LLFloaterCamera::updateIfNotInAvatarViewMode();
LLToolMgr::getInstance()->setCurrentToolset(gMouselookToolset);
mViewsPushed = TRUE;

View File

@ -144,6 +144,11 @@ void LLPanelCameraZoom::onSliderValueChanged()
mSavedSliderVal = val;
}
void activate_camera_tool()
{
LLToolMgr::getInstance()->setTransientTool(LLToolCamera::getInstance());
};
//
// Member functions
//
@ -151,7 +156,7 @@ void LLPanelCameraZoom::onSliderValueChanged()
/*static*/ bool LLFloaterCamera::inFreeCameraMode()
{
LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
if (floater_camera && floater_camera->mCurrMode == CAMERA_CTRL_MODE_FREE_CAMERA)
if (floater_camera && floater_camera->mCurrMode == CAMERA_CTRL_MODE_FREE_CAMERA && gAgent.getCameraMode() != CAMERA_MODE_MOUSELOOK)
{
return true;
}
@ -177,27 +182,17 @@ void LLFloaterCamera::update()
}
/*static*/ void LLFloaterCamera::updateIfNotInAvatarViewMode()
{
LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
if (floater_camera && !floater_camera->inAvatarViewMode())
{
floater_camera->update();
}
}
void LLFloaterCamera::toPrevMode()
{
switchMode(mPrevMode);
}
/*static*/ void LLFloaterCamera::toPrevModeIfInAvatarViewMode()
/*static*/ void LLFloaterCamera::onLeavingMouseLook()
{
LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
if (floater_camera && floater_camera->inAvatarViewMode())
if (floater_camera && floater_camera->inFreeCameraMode())
{
floater_camera->toPrevMode();
activate_camera_tool();
}
}
@ -325,7 +320,7 @@ void LLFloaterCamera::switchMode(ECameraControlMode mode)
break;
case CAMERA_CTRL_MODE_FREE_CAMERA:
LLToolMgr::getInstance()->setTransientTool(LLToolCamera::getInstance());
activate_camera_tool();
break;
case CAMERA_CTRL_MODE_AVATAR_VIEW:

View File

@ -61,7 +61,7 @@ public:
/* callback for camera presets changing */
static void onClickCameraPresets(const LLSD& param);
static void toPrevModeIfInAvatarViewMode();
static void onLeavingMouseLook();
/** resets current camera mode to orbit mode */
static void resetCameraMode();
@ -69,8 +69,6 @@ public:
/* determines actual mode and updates ui */
void update();
static void updateIfNotInAvatarViewMode();
virtual void onOpen(const LLSD& key);
virtual void onClose(bool app_quitting);