diff options
Diffstat (limited to 'indra/newview/lltoolobjpicker.cpp')
-rw-r--r-- | indra/newview/lltoolobjpicker.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/newview/lltoolobjpicker.cpp b/indra/newview/lltoolobjpicker.cpp index ee9c24f269..67e0db962f 100644 --- a/indra/newview/lltoolobjpicker.cpp +++ b/indra/newview/lltoolobjpicker.cpp @@ -69,7 +69,7 @@ BOOL LLToolObjPicker::handleMouseDown(S32 x, S32 y, MASK mask) if (! handled) { // didn't click in any UI object, so must have clicked in the world - gViewerWindow->pickAsync(x, y, mask, pickCallback); + gViewerWindow->hitObjectOrLandGlobalAsync(x, y, mask, pickCallback); handled = TRUE; } else @@ -90,10 +90,16 @@ BOOL LLToolObjPicker::handleMouseDown(S32 x, S32 y, MASK mask) return handled; } -void LLToolObjPicker::pickCallback(const LLPickInfo& pick_info) +void LLToolObjPicker::pickCallback(S32 x, S32 y, MASK mask) { - LLToolObjPicker::getInstance()->mHitObjectID = pick_info.mObjectID; - LLToolObjPicker::getInstance()->mPicked = pick_info.mObjectID.notNull(); + // You must hit the body for this tool to think you hit the object. + LLViewerObject* objectp = NULL; + objectp = gObjectList.findObject( gLastHitObjectID ); + if (objectp) + { + LLToolObjPicker::getInstance()->mHitObjectID = objectp->mID; + LLToolObjPicker::getInstance()->mPicked = TRUE; + } } @@ -175,4 +181,3 @@ void LLToolObjPicker::handleDeselect() } - |