Modifying the behavior so that the user is able to drag the start/end points, but holding ctrl/shift while hovering will still not be destructive to the old values.
parent
ba0e3c3c64
commit
1f09812ad2
|
|
@ -83,11 +83,73 @@ BOOL LLPathfindingPathTool::handleMouseDown(S32 pX, S32 pY, MASK pMask)
|
|||
computeFinalPath();
|
||||
|
||||
returnVal = TRUE;
|
||||
setMouseCapture(TRUE);
|
||||
}
|
||||
|
||||
return returnVal;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleMouseUp(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
BOOL returnVal = FALSE;
|
||||
|
||||
if (isAnyPathToolModKeys(pMask))
|
||||
{
|
||||
LLVector3 dv = gViewerWindow->mouseDirectionGlobal(pX, pY);
|
||||
LLVector3 mousePos = LLViewerCamera::getInstance()->getOrigin();
|
||||
LLVector3 rayStart = mousePos;
|
||||
LLVector3 rayEnd = mousePos + dv * 150;
|
||||
|
||||
if (isPointAModKeys(pMask))
|
||||
{
|
||||
setFinalA(rayStart, rayEnd);
|
||||
}
|
||||
else if (isPointBModKeys(pMask))
|
||||
{
|
||||
setFinalB(rayStart, rayEnd);
|
||||
}
|
||||
computeFinalPath();
|
||||
|
||||
setMouseCapture(FALSE);
|
||||
returnVal = TRUE;
|
||||
}
|
||||
|
||||
return returnVal;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(TRUE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleRightMouseDown(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(TRUE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleRightMouseUp(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
setMouseCapture(FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleDoubleClick(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLPathfindingPathTool::handleHover(S32 pX, S32 pY, MASK pMask)
|
||||
{
|
||||
BOOL returnVal = FALSE;
|
||||
|
|
|
|||
|
|
@ -68,6 +68,13 @@ public:
|
|||
typedef boost::signals2::connection path_event_slot_t;
|
||||
|
||||
virtual BOOL handleMouseDown(S32 pX, S32 pY, MASK pMask);
|
||||
virtual BOOL handleMouseUp(S32 pX, S32 pY, MASK pMask);
|
||||
virtual BOOL handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask);
|
||||
virtual BOOL handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask);
|
||||
virtual BOOL handleRightMouseDown(S32 pX, S32 pY, MASK pMask);
|
||||
virtual BOOL handleRightMouseUp(S32 pX, S32 pY, MASK pMask);
|
||||
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
|
||||
|
||||
virtual BOOL handleHover(S32 pX, S32 pY, MASK pMask);
|
||||
|
||||
EPathStatus getPathStatus() const;
|
||||
|
|
|
|||
Loading…
Reference in New Issue