Skip to content
Snippets Groups Projects
Commit e4c262ec authored by daianakproductengine's avatar daianakproductengine
Browse files

MAINT-321 Fixed User cannot lift an object using Ctrl button + Mouse if Spin...

MAINT-321 Fixed User cannot lift an object using Ctrl button + Mouse if Spin option was turned on earlier
parent 5205be0c
No related branches found
No related tags found
No related merge requests found
...@@ -477,39 +477,53 @@ void LLToolGrabBase::handleHoverActive(S32 x, S32 y, MASK mask) ...@@ -477,39 +477,53 @@ void LLToolGrabBase::handleHoverActive(S32 x, S32 y, MASK mask)
return; return;
} }
//--------------------------------------------------
// Determine target mode
//--------------------------------------------------
bool vertical_dragging = false;
bool spin_grabbing = false;
if ((mask == MASK_VERTICAL)
|| (gGrabBtnVertical && (mask != MASK_SPIN)))
{
vertical_dragging = TRUE;
}
else if ((mask == MASK_SPIN)
|| (gGrabBtnSpin && (mask != MASK_VERTICAL)))
{
spin_grabbing = TRUE;
}
//-------------------------------------------------- //--------------------------------------------------
// Toggle spinning // Toggle spinning
//-------------------------------------------------- //--------------------------------------------------
if (mSpinGrabbing && !(mask == MASK_SPIN) && !gGrabBtnSpin) if (mSpinGrabbing && !spin_grabbing)
{ {
// user released ALT key, stop spinning // user released or switched mask key(s), stop spinning
stopSpin(); stopSpin();
} }
else if (!mSpinGrabbing && (mask == MASK_SPIN) ) else if (!mSpinGrabbing && spin_grabbing)
{ {
// user pressed ALT key, start spinning // user pressed mask key(s), start spinning
startSpin(); startSpin();
} }
mSpinGrabbing = spin_grabbing;
//-------------------------------------------------- //--------------------------------------------------
// Toggle vertical dragging // Toggle vertical dragging
//-------------------------------------------------- //--------------------------------------------------
if (mVerticalDragging && !(mask == MASK_VERTICAL) && !gGrabBtnVertical) if (mVerticalDragging && !vertical_dragging)
{ {
// ...switch to horizontal dragging // ...switch to horizontal dragging
mVerticalDragging = FALSE;
mDragStartPointGlobal = gViewerWindow->clickPointInWorldGlobal(x, y, objectp); mDragStartPointGlobal = gViewerWindow->clickPointInWorldGlobal(x, y, objectp);
mDragStartFromCamera = mDragStartPointGlobal - gAgentCamera.getCameraPositionGlobal(); mDragStartFromCamera = mDragStartPointGlobal - gAgentCamera.getCameraPositionGlobal();
} }
else if (!mVerticalDragging && (mask == MASK_VERTICAL) ) else if (!mVerticalDragging && vertical_dragging)
{ {
// ...switch to vertical dragging // ...switch to vertical dragging
mVerticalDragging = TRUE;
mDragStartPointGlobal = gViewerWindow->clickPointInWorldGlobal(x, y, objectp); mDragStartPointGlobal = gViewerWindow->clickPointInWorldGlobal(x, y, objectp);
mDragStartFromCamera = mDragStartPointGlobal - gAgentCamera.getCameraPositionGlobal(); mDragStartFromCamera = mDragStartPointGlobal - gAgentCamera.getCameraPositionGlobal();
} }
mVerticalDragging = vertical_dragging;
const F32 RADIANS_PER_PIXEL_X = 0.01f; const F32 RADIANS_PER_PIXEL_X = 0.01f;
const F32 RADIANS_PER_PIXEL_Y = 0.01f; const F32 RADIANS_PER_PIXEL_Y = 0.01f;
...@@ -755,12 +769,13 @@ void LLToolGrabBase::handleHoverNonPhysical(S32 x, S32 y, MASK mask) ...@@ -755,12 +769,13 @@ void LLToolGrabBase::handleHoverNonPhysical(S32 x, S32 y, MASK mask)
//-------------------------------------------------- //--------------------------------------------------
// Toggle vertical dragging // Toggle vertical dragging
//-------------------------------------------------- //--------------------------------------------------
if (mVerticalDragging && !(mask == MASK_VERTICAL) && !gGrabBtnVertical) if (!(mask == MASK_VERTICAL) && !gGrabBtnVertical)
{ {
mVerticalDragging = FALSE; mVerticalDragging = FALSE;
} }
else if (!mVerticalDragging && (mask == MASK_VERTICAL) ) else if ((gGrabBtnVertical && (mask != MASK_SPIN))
|| (mask == MASK_VERTICAL))
{ {
mVerticalDragging = TRUE; mVerticalDragging = TRUE;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment