diff options
Diffstat (limited to 'indra/newview/lltoolcomp.cpp')
-rw-r--r-- | indra/newview/lltoolcomp.cpp | 50 |
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); } |