summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolcomp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lltoolcomp.cpp')
-rw-r--r--indra/newview/lltoolcomp.cpp50
1 files changed, 41 insertions, 9 deletions
diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp
index 945a172b1c..3f111583b5 100644
--- a/indra/newview/lltoolcomp.cpp
+++ b/indra/newview/lltoolcomp.cpp
@@ -148,7 +148,7 @@ void LLToolCompInspect::pickCallback(S32 x, S32 y, MASK mask)
if( hit_obj )
{
- if (gSelectMgr->getObjectCount())
+ if (gSelectMgr->getSelection()->getObjectCount())
{
gEditMenuHandler = gSelectMgr;
}
@@ -222,7 +222,7 @@ void LLToolCompTranslate::pickCallback(S32 x, S32 y, MASK mask)
if( hit_obj || gToolTranslate->mManip->getHighlightedPart() != LLManip::LL_NO_PART )
{
- if (gSelectMgr->getObjectCount())
+ if (gToolTranslate->mManip->getSelection()->getObjectCount())
{
gEditMenuHandler = gSelectMgr;
}
@@ -253,9 +253,22 @@ BOOL LLToolCompTranslate::handleMouseUp(S32 x, S32 y, MASK mask)
return LLToolComposite::handleMouseUp(x, y, mask);
}
+LLTool* LLToolCompTranslate::getOverrideTool(MASK mask)
+{
+ if (mask == MASK_CONTROL)
+ {
+ return gToolRotate;
+ }
+ else if (mask == (MASK_CONTROL | MASK_SHIFT))
+ {
+ return gToolStretch;
+ }
+ return LLToolComposite::getOverrideTool(mask);
+}
+
BOOL LLToolCompTranslate::handleDoubleClick(S32 x, S32 y, MASK mask)
{
- if (!gSelectMgr->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
+ if (mManip->getSelection()->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
{
// You should already have an object selected from the mousedown.
// If so, show its properties
@@ -331,7 +344,7 @@ void LLToolCompScale::pickCallback(S32 x, S32 y, MASK mask)
if( hit_obj || gToolStretch->mManip->getHighlightedPart() != LLManip::LL_NO_PART)
{
- if (gSelectMgr->getObjectCount())
+ if (gToolStretch->mManip->getSelection()->getObjectCount())
{
gEditMenuHandler = gSelectMgr;
}
@@ -359,9 +372,20 @@ BOOL LLToolCompScale::handleMouseUp(S32 x, S32 y, MASK mask)
return LLToolComposite::handleMouseUp(x, y, mask);
}
+LLTool* LLToolCompScale::getOverrideTool(MASK mask)
+{
+ if (mask == MASK_CONTROL)
+ {
+ return gToolRotate;
+ }
+
+ return LLToolComposite::getOverrideTool(mask);
+}
+
+
BOOL LLToolCompScale::handleDoubleClick(S32 x, S32 y, MASK mask)
{
- if (!gSelectMgr->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
+ if (!mManip->getSelection()->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
{
// You should already have an object selected from the mousedown.
// If so, show its properties
@@ -515,7 +539,7 @@ void LLToolCompRotate::pickCallback(S32 x, S32 y, MASK mask)
if( hit_obj || gToolRotate->mManip->getHighlightedPart() != LLManip::LL_NO_PART)
{
- if (gSelectMgr->getObjectCount())
+ if (gToolRotate->mManip->getSelection()->getObjectCount())
{
gEditMenuHandler = gSelectMgr;
}
@@ -543,10 +567,18 @@ BOOL LLToolCompRotate::handleMouseUp(S32 x, S32 y, MASK mask)
return LLToolComposite::handleMouseUp(x, y, mask);
}
+LLTool* LLToolCompRotate::getOverrideTool(MASK mask)
+{
+ if (mask == (MASK_CONTROL | MASK_SHIFT))
+ {
+ return gToolStretch;
+ }
+ return LLToolComposite::getOverrideTool(mask);
+}
BOOL LLToolCompRotate::handleDoubleClick(S32 x, S32 y, MASK mask)
{
- if (!gSelectMgr->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
+ if (!mManip->getSelection()->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
{
// You should already have an object selected from the mousedown.
// If so, show its properties
@@ -649,7 +681,7 @@ BOOL LLToolCompGun::handleMouseDown(S32 x, S32 y, MASK mask)
// On mousedown, start grabbing
gGrabTransientTool = this;
- gCurrentToolset->selectTool( (LLTool*) mGrab );
+ gToolMgr->getCurrentToolset()->selectTool( (LLTool*) mGrab );
return gToolGrab->handleMouseDown(x, y, mask);
}
@@ -666,7 +698,7 @@ BOOL LLToolCompGun::handleDoubleClick(S32 x, S32 y, MASK mask)
// On mousedown, start grabbing
gGrabTransientTool = this;
- gCurrentToolset->selectTool( (LLTool*) mGrab );
+ gToolMgr->getCurrentToolset()->selectTool( (LLTool*) mGrab );
return gToolGrab->handleDoubleClick(x, y, mask);
}