BOOL LLToolGrab::handleHover(S32 x, S32 y, MASK mask) { if (!gViewerWindow->getLeftMouseDown()) { gViewerWindow->setCursor(UI_CURSOR_TOOLGRAB); setMouseCapture(FALSE); return TRUE; } // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Added: RLVa-0.2.0f // Don't allow dragging beyond 1.5m under @fartouch=n LLViewerObject* pObj; if ( (gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH)) && (GRAB_INACTIVE != mMode) && (hasMouseCapture()) && ((pObj = mGrabPick.getObject()) != NULL) && (!pObj->isDead()) && (!pObj->isHUDAttachment()) && (dist_vec_squared(gAgent.getPositionAgent(), pObj->getPositionRegion() + mGrabPick.mObjectOffset) > 1.5f * 1.5f) ) { if (gGrabTransientTool) { // Prevent the grab tool from popping up as soon as we kill the drag operation gBasicToolset->selectTool(gGrabTransientTool); gGrabTransientTool = NULL; } setMouseCapture(FALSE); } // [/RLVa:KB] // Do the right hover based on mode switch( mMode ) { case GRAB_ACTIVE_CENTER: handleHoverActive( x, y, mask ); // cursor hidden break; case GRAB_NONPHYSICAL: handleHoverNonPhysical(x, y, mask); break; case GRAB_INACTIVE: handleHoverInactive( x, y, mask ); // cursor set here break; case GRAB_NOOBJECT: case GRAB_LOCKED: handleHoverFailed( x, y, mask ); break; } mLastMouseX = x; mLastMouseY = y; return TRUE; }
BOOL LLToolGrab::handleHover(S32 x, S32 y, MASK mask) { if (!gViewerWindow->getLeftMouseDown()) { gViewerWindow->setCursor(UI_CURSOR_TOOLGRAB); setMouseCapture(FALSE); return TRUE; } // [RLVa:KB] - Checked: 2010-03-11 (RLVa-1.2.0e) | Modified: RLVa-1.1.0l // Block dragging an object beyond touch range when @fartouch=n restricted if ( (rlv_handler_t::isEnabled()) && (GRAB_INACTIVE != mMode) && (GRAB_NOOBJECT != mMode) && (hasMouseCapture()) && (gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH)) && (!gRlvHandler.canTouch(mGrabPick.getObject(), mGrabPick.mObjectOffset)) ) { if (gGrabTransientTool) { // Prevent the grab tool from popping up as soon as we kill the drag operation gBasicToolset->selectTool(gGrabTransientTool); gGrabTransientTool = NULL; } setMouseCapture(FALSE); return TRUE; } // [/RLVa:KB] // Do the right hover based on mode switch( mMode ) { case GRAB_ACTIVE_CENTER: handleHoverActive( x, y, mask ); // cursor hidden break; case GRAB_NONPHYSICAL: handleHoverNonPhysical(x, y, mask); break; case GRAB_INACTIVE: handleHoverInactive( x, y, mask ); // cursor set here break; case GRAB_NOOBJECT: case GRAB_LOCKED: handleHoverFailed( x, y, mask ); break; } mLastMouseX = x; mLastMouseY = y; return TRUE; }
BOOL LLToolGrab::handleHover(S32 x, S32 y, MASK mask) { if (!gViewerWindow->getLeftMouseDown()) { gViewerWindow->setCursor(UI_CURSOR_TOOLGRAB); setMouseCapture(FALSE); return TRUE; } // Do the right hover based on mode switch( mMode ) { case GRAB_ACTIVE_CENTER: handleHoverActive( x, y, mask ); // cursor hidden break; case GRAB_NONPHYSICAL: handleHoverNonPhysical(x, y, mask); break; case GRAB_INACTIVE: handleHoverInactive( x, y, mask ); // cursor set here break; case GRAB_NOOBJECT: case GRAB_LOCKED: handleHoverFailed( x, y, mask ); break; } mLastMouseX = x; mLastMouseY = y; return TRUE; }