summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerdisplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerdisplay.cpp')
-rw-r--r--indra/newview/llviewerdisplay.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index fe2d44a401..7d97151e9d 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -316,6 +316,24 @@ static void update_tp_display(bool minimized)
{
// Transition to REQUESTED. Viewer has sent some kind
// of TeleportRequest to the source simulator
+
+ // NaCl: Right-click + scroll wheel zoom in mouselook (ported from Firestorm).
+ // Reset the mouselook zoom state on teleport so we don't get stuck at
+ // the zoomed FOV after arriving at the destination.
+ if (gAgentCamera.cameraMouselook())
+ {
+ LLVector3 mlFovValues = gSavedSettings.getVector3("_NACL_MLFovValues");
+ bool wasZoomed = (mlFovValues.mV[VZ] > 0.0f);
+ mlFovValues.mV[VZ] = 0.0f; // clear "currently zoomed" flag
+ gSavedSettings.setVector3("_NACL_MLFovValues", mlFovValues);
+ if (wasZoomed)
+ {
+ // Restore the normal (pre-zoom) FOV
+ gSavedSettings.setF32("CameraAngle", mlFovValues.mV[VX]);
+ }
+ }
+ // NaCl End
+
gTeleportDisplayTimer.reset();
const std::string& msg = LLAgent::sTeleportProgressMessages["requesting"];
LL_INFOS("Teleport") << "A teleport request has been sent, setting state to TELEPORT_REQUESTED" << LL_ENDL;