diff options
Diffstat (limited to 'indra/newview')
-rwxr-xr-x | indra/newview/app_settings/settings.xml | 108 | ||||
-rwxr-xr-x | indra/newview/lltoolpie.cpp | 86 |
2 files changed, 115 insertions, 79 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index bedbed2dcc..1fdfdb51a8 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -734,7 +734,7 @@ <string>F32</string> <key>Value</key> <integer>60</integer> - </map> + </map> <key>AvatarRotateThresholdFast</key> <map> <key>Comment</key> @@ -745,7 +745,7 @@ <string>F32</string> <key>Value</key> <integer>2</integer> - </map> + </map> <key>AvatarBakedTextureUploadTimeout</key> <map> <key>Comment</key> @@ -1339,7 +1339,7 @@ <string>String</string> <key>Value</key> <string /> - </map> + </map> <key>CacheNumberOfRegionsForObjects</key> <map> <key>Comment</key> @@ -2005,7 +2005,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>0</integer> + <integer>1</integer> </map> <key>ChatBarCustomWidth</key> <map> @@ -3788,7 +3788,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>FirstSelectedEnabledPopups</key> <map> <key>Comment</key> @@ -3799,7 +3799,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>FixedWeather</key> <map> <key>Comment</key> @@ -3921,7 +3921,7 @@ <key>Value</key> <string>SW</string> </map> - + <key>FloaterStatisticsRect</key> <map> <key>Comment</key> @@ -4448,7 +4448,7 @@ <string>String</string> <key>Value</key> <string>http://lecs-viewer-web-components.s3.amazonaws.com/v3.0/[GRID_LOWERCASE]/howto/index.html</string> - </map> + </map> <key>HomeSidePanelURL</key> <map> <key>Comment</key> @@ -4514,7 +4514,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>HostID</key> <map> <key>Comment</key> @@ -4602,7 +4602,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>IgnorePixelDepth</key> <map> <key>Comment</key> @@ -4657,7 +4657,7 @@ <string>F32</string> <key>Value</key> <real>0.5</real> - </map> + </map> <key>InspectorShowTime</key> <map> <key>Comment</key> @@ -4668,7 +4668,7 @@ <string>F32</string> <key>Value</key> <real>3.0</real> - </map> + </map> <key>InstallLanguage</key> <map> <key>Comment</key> @@ -5230,7 +5230,7 @@ <key>Value</key> <string>0.0.0</string> </map> - + <key>LastSnapshotToProfileHeight</key> <map> <key>Comment</key> @@ -6309,7 +6309,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>MenuAccessKeyTime</key> <map> <key>Comment</key> @@ -6474,7 +6474,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>MouseSun</key> <map> <key>Comment</key> @@ -6639,7 +6639,7 @@ <string>String</string> <key>Value</key> <string /> - </map> + </map> <key>NextLoginLocation</key> <map> <key>Comment</key> @@ -6763,7 +6763,7 @@ <string>String</string> <key>Value</key> <string>toast</string> - </map> + </map> <key>NotificationFriendIMOptions</key> <map> <key>Comment</key> @@ -6819,7 +6819,7 @@ <string>String</string> <key>Value</key> <string>toast</string> - </map> + </map> <key>NotificationObjectIMOptions</key> <map> <key>Comment</key> @@ -6833,7 +6833,7 @@ <string>String</string> <key>Value</key> <string>toast</string> - </map> + </map> <key>NotificationToastLifeTime</key> <map> <key>Comment</key> @@ -7392,7 +7392,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>PlaySoundFriendIM</key> <map> <key>Comment</key> @@ -7503,7 +7503,7 @@ <key>Value</key> <real>0.9</real> </map> - + <key>PlainTextChatHistory</key> <map> <key>Comment</key> @@ -7515,7 +7515,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>PluginInstancesLow</key> <map> <key>Comment</key> @@ -7769,7 +7769,7 @@ <real>0.4</real> </array> </map> - + <key>PreviewDirection2</key> <map> <key>Comment</key> @@ -8379,7 +8379,7 @@ <key>RenderComplexityStaticMax</key> <map> <key>Comment</key> - <string>Sets a static max value for scaling of RenderComplexity + <string>Sets a static max value for scaling of RenderComplexity display (-1 for dynamic scaling)</string> <key>Persist</key> <integer>1</integer> @@ -8457,7 +8457,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>RenderLocalLights</key> <map> <key>Comment</key> @@ -8684,7 +8684,7 @@ <key>Persist</key> <integer>1</integer> <key>Type</key> - <string>Boolean</string> + <string>Boolean</string> <key>Value</key> <integer>0</integer> </map> @@ -8721,7 +8721,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>RenderAnimateRes</key> <map> <key>Comment</key> @@ -8894,7 +8894,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>RenderDepthOfField</key> <map> <key>Comment</key> @@ -9023,7 +9023,7 @@ <key>Value</key> <real>0.1</real> </map> - + <key>RenderHighlightBrightness</key> <map> <key>Comment</key> @@ -9047,7 +9047,7 @@ <key>Value</key> <real>0.6</real> </map> - + <key>RenderHighlightColor</key> <map> <key>Comment</key> @@ -9076,7 +9076,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>RenderSpecularResX</key> <map> <key>Comment</key> @@ -9981,7 +9981,7 @@ <key>Value</key> <integer>1</integer> </map> - + <key>RenderAutoMuteByteLimit</key> <map> <key>Comment</key> @@ -10036,7 +10036,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>RenderAutoHideSurfaceAreaLimit</key> <map> <key>Comment</key> @@ -10522,7 +10522,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>SelectMovableOnly</key> <map> <key>Comment</key> @@ -10764,7 +10764,7 @@ <string>Boolean</string> <key>Value</key> <integer>1</integer> - </map> + </map> <key>ShowCrosshairs</key> <map> <key>Comment</key> @@ -10841,7 +10841,7 @@ <string>Boolean</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>ShowMiniMapButton</key> <map> <key>Comment</key> @@ -10908,7 +10908,7 @@ <key>Value</key> <integer>1</integer> </map> - <key>ShowObjectRenderingCost</key> + <key>ShowObjectRenderingCost</key> <map> <key>Comment</key> <string>Show the object rendering cost in build tools</string> @@ -10917,9 +10917,9 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>1</integer> - </map> - <key>ShowNavbarFavoritesPanel</key> + <integer>1</integer> + </map> + <key>ShowNavbarFavoritesPanel</key> <map> <key>Comment</key> <string>Show/hide navigation bar favorites panel</string> @@ -10928,9 +10928,9 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>1</integer> + <integer>1</integer> </map> - <key>ShowNavbarNavigationPanel</key> + <key>ShowNavbarNavigationPanel</key> <map> <key>Comment</key> <string>Show/hide navigation bar navigation panel</string> @@ -10939,7 +10939,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>1</integer> + <integer>1</integer> </map> <key>ShowWorldMapButton</key> <map> @@ -11095,7 +11095,7 @@ <key>Value</key> <integer>1</integer> </map> - <key>ShowPGSearchAll</key> + <key>ShowPGSearchAll</key> <map> <key>Comment</key> <string>Display results of search All that are flagged as general</string> @@ -11611,7 +11611,7 @@ <string>S32</string> <key>Value</key> <integer>0</integer> - </map> + </map> <key>SnapshotQuality</key> <map> <key>Comment</key> @@ -12480,7 +12480,7 @@ <string>String</string> <key>Value</key> <string>B56AF90D-6684-48E4-B1E4-722D3DEB2CB6</string> - </map> + </map> <key>NearByChatChannelUUID</key> <map> <key>Comment</key> @@ -12491,7 +12491,7 @@ <string>String</string> <key>Value</key> <string>E1158BD6-661C-4981-9DAD-4DCBFF062502</string> - </map> + </map> <key>NotificationChannelUUID</key> <map> <key>Comment</key> @@ -12502,7 +12502,7 @@ <string>String</string> <key>Value</key> <string>AEED3193-8709-4693-8558-7452CCA97AE5</string> - </map> + </map> <key>AlertChannelUUID</key> <map> <key>Comment</key> @@ -12513,7 +12513,7 @@ <string>String</string> <key>Value</key> <string>F3E07BC8-A973-476D-8C7F-F3B7293975D1</string> - </map> + </map> <key>UIImgWhiteUUID</key> <map> <key>Comment</key> @@ -12535,7 +12535,7 @@ <string>S32</string> <key>Value</key> <integer>2</integer> - </map> + </map> <key>UIMaxComboWidth</key> <map> <key>Comment</key> @@ -13448,7 +13448,7 @@ <string>String</string> <key>Value</key> <string>[i800,i600]</string> - </map> + </map> <key>sourceid</key> <map> <key>Comment</key> @@ -14669,7 +14669,7 @@ <string>Boolean</string> <key>Value</key> <integer>1</integer> - </map> + </map> <key>EnablePlaceProfile</key> <map> <key>Comment</key> @@ -15491,7 +15491,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>PathfindingLineWidth</key> <map> <key>Comment</key> @@ -15532,7 +15532,7 @@ <real>1.0</real> </array> </map> - + <key>HideUIControls</key> <map> <key>Comment</key> diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 2081297717..60a7d284ef 100755 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -106,7 +106,7 @@ BOOL LLToolPie::handleMouseDown(S32 x, S32 y, MASK mask) mMouseDownX = x; mMouseDownY = y; - //left mouse down always picks transparent + //left mouse down always picks transparent (but see handleMouseUp) mPick = gViewerWindow->pickImmediate(x, y, TRUE); mPick.mKeyMask = mask; @@ -661,30 +661,52 @@ BOOL LLToolPie::handleMouseUp(S32 x, S32 y, MASK mask) && gAgentAvatarp && !gAgentAvatarp->isSitting() && !mBlockClickToWalk // another behavior hasn't cancelled click to walk - && !mPick.mPosGlobal.isExactlyZero() // valid coordinates for pick - && (mPick.mPickType == LLPickInfo::PICK_LAND // we clicked on land - || mPick.mObjectID.notNull())) // or on an object - { - // handle special cases of steering picks - LLViewerObject* avatar_object = mPick.getObject(); - - // get pointer to avatar - while (avatar_object && !avatar_object->isAvatar()) - { - avatar_object = (LLViewerObject*)avatar_object->getParent(); - } - - if (avatar_object && ((LLVOAvatar*)avatar_object)->isSelf()) - { - const F64 SELF_CLICK_WALK_DISTANCE = 3.0; - // pretend we picked some point a bit in front of avatar - mPick.mPosGlobal = gAgent.getPositionGlobal() + LLVector3d(LLViewerCamera::instance().getAtAxis()) * SELF_CLICK_WALK_DISTANCE; - } - gAgentCamera.setFocusOnAvatar(TRUE, TRUE); - walkToClickedLocation(); - LLFirstUse::notMoving(false); - - return TRUE; + ) + { + // We may be doing click to walk, but we don't want to use a target on + // a transparent object because the user thought they were clicking on + // whatever they were seeing through it, so recompute what was clicked on + // ignoring transparent objects + LLPickInfo savedPick = mPick; + mPick = gViewerWindow->pickImmediate(savedPick.mMousePt.mX, savedPick.mMousePt.mY, + FALSE /* ignore transparent */, + FALSE /* ignore particles */); + + if (!mPick.mPosGlobal.isExactlyZero() // valid coordinates for pick + && (mPick.mPickType == LLPickInfo::PICK_LAND // we clicked on land + || mPick.mObjectID.notNull())) // or on an object + { + // handle special cases of steering picks + LLViewerObject* avatar_object = mPick.getObject(); + + // get pointer to avatar + while (avatar_object && !avatar_object->isAvatar()) + { + avatar_object = (LLViewerObject*)avatar_object->getParent(); + } + + if (avatar_object && ((LLVOAvatar*)avatar_object)->isSelf()) + { + const F64 SELF_CLICK_WALK_DISTANCE = 3.0; + // pretend we picked some point a bit in front of avatar + mPick.mPosGlobal = gAgent.getPositionGlobal() + LLVector3d(LLViewerCamera::instance().getAtAxis()) * SELF_CLICK_WALK_DISTANCE; + } + gAgentCamera.setFocusOnAvatar(TRUE, TRUE); + walkToClickedLocation(); + LLFirstUse::notMoving(false); + + return TRUE; + } + else + { + LL_DEBUGS("maint5901") << "walk target was " + << (mPick.mPosGlobal.isExactlyZero() ? "zero" : "not zero") + << ", pick type was " << (mPick.mPickType == LLPickInfo::PICK_LAND ? "land" : "not land") + << ", pick object was " << mPick.mObjectID + << LL_ENDL; + // we didn't click to walk, so restore the original target + mPick = savedPick; + } } gViewerWindow->setCursor(UI_CURSOR_ARROW); if (hasMouseCapture()) @@ -718,12 +740,26 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask) if (gSavedSettings.getBOOL("DoubleClickAutoPilot")) { + // We may be doing double click to walk, but we don't want to use a target on + // a transparent object because the user thought they were clicking on + // whatever they were seeing through it, so recompute what was clicked on + // ignoring transparent objects + LLPickInfo savedPick = mPick; + mPick = gViewerWindow->pickImmediate(savedPick.mMousePt.mX, savedPick.mMousePt.mY, + FALSE /* ignore transparent */, + FALSE /* ignore particles */); + if ((mPick.mPickType == LLPickInfo::PICK_LAND && !mPick.mPosGlobal.isExactlyZero()) || (mPick.mObjectID.notNull() && !mPick.mPosGlobal.isExactlyZero())) { walkToClickedLocation(); return TRUE; } + else + { + // restore the original pick for any other purpose + mPick = savedPick; + } } else if (gSavedSettings.getBOOL("DoubleClickTeleport")) { |