summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolmgr.cpp
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2011-10-22 06:46:26 -0400
committerOz Linden <oz@lindenlab.com>2011-10-22 06:46:26 -0400
commit23f05269535d7c36806913244de419d7ab0b9f46 (patch)
tree34c996678f96d1b0ad69cc64dbe39454dc516d69 /indra/newview/lltoolmgr.cpp
parent2a206cff7982db662c58436f870c6383b396d7df (diff)
parentf5197b6158bf1b9350fab2dd7877f6c0a4c2f778 (diff)
merge changes for STORM-1661
Diffstat (limited to 'indra/newview/lltoolmgr.cpp')
-rw-r--r--indra/newview/lltoolmgr.cpp42
1 files changed, 23 insertions, 19 deletions
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index 51c0e2eeed..6bc7c6de11 100644
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -247,24 +247,10 @@ bool LLToolMgr::canEdit()
void LLToolMgr::toggleBuildMode()
{
- if (inBuildMode())
- {
- if (gSavedSettings.getBOOL("EditCameraMovement"))
- {
- // just reset the view, will pull us out of edit mode
- handle_reset_view();
- }
- else
- {
- // manually disable edit mode, but do not affect the camera
- gAgentCamera.resetView(false);
- LLFloaterReg::hideInstance("build");
- gViewerWindow->showCursor();
- }
- // avoid spurious avatar movements pulling out of edit mode
- LLViewerJoystick::getInstance()->setNeedsReset();
- }
- else
+ LLFloaterReg::toggleInstanceOrBringToFront("build");
+
+ bool build_visible = LLFloaterReg::instanceVisible("build");
+ if (build_visible)
{
ECameraMode camMode = gAgentCamera.getCameraMode();
if (CAMERA_MODE_MOUSELOOK == camMode || CAMERA_MODE_CUSTOMIZE_AVATAR == camMode)
@@ -291,7 +277,7 @@ void LLToolMgr::toggleBuildMode()
}
}
-
+
setCurrentToolset(gBasicToolset);
getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
@@ -304,6 +290,24 @@ void LLToolMgr::toggleBuildMode()
LLViewerJoystick::getInstance()->setNeedsReset();
}
+ else
+ {
+ if (gSavedSettings.getBOOL("EditCameraMovement"))
+ {
+ // just reset the view, will pull us out of edit mode
+ handle_reset_view();
+ }
+ else
+ {
+ // manually disable edit mode, but do not affect the camera
+ gAgentCamera.resetView(false);
+ LLFloaterReg::hideInstance("build");
+ gViewerWindow->showCursor();
+ }
+ // avoid spurious avatar movements pulling out of edit mode
+ LLViewerJoystick::getInstance()->setNeedsReset();
+ }
+
}
bool LLToolMgr::inBuildMode()