summaryrefslogtreecommitdiff
path: root/indra/newview/llagentcamera.cpp
diff options
context:
space:
mode:
authorleviathan <leviathan@lindenlab.com>2026-09-24 13:34:56 -0700
committerleviathan <leviathan@lindenlab.com>2026-10-16 13:14:38 -0700
commit7a204dcbf1e826ea2ccdbbf46f3559d4ba999ff1 (patch)
tree5b97e91c5b5fdef0c79988a82871cf9e92b405f1 /indra/newview/llagentcamera.cpp
parent6dab61523f2c0c05379f376e17c747f70c7112f3 (diff)
fix game-control flycam and misc preferences UI
Diffstat (limited to 'indra/newview/llagentcamera.cpp')
-rw-r--r--indra/newview/llagentcamera.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 43c01c8d6f..ea38ac34a3 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -3054,7 +3054,12 @@ void LLAgentCamera::updateFlycam(F32 delta_time)
bool flycam_key_unroll_requested = mFlycamKeyboardUnrollRequested;
mFlycamKeyboardUnrollRequested = false;
- if ((flycam_misc_actions & LLGameControl::FLYCAM_ACTION_UNROLL) || flycam_key_unroll_requested)
+ // Unroll only undoes roll, and roll is already kept at zero every frame
+ // (LLFlycam::setRollRate()/integrate()) whenever roll is disallowed, so
+ // treat an Unroll request as a no-op rather than kicking off a pointless
+ // startReset() lerp while "Allow Roll" is unchecked.
+ if (LLGameControl::isFlycamRollAllowed()
+ && ((flycam_misc_actions & LLGameControl::FLYCAM_ACTION_UNROLL) || flycam_key_unroll_requested))
{
// Re-orient the flycam in place: keep its current position and
// forward (local X) axis unchanged, but unroll it so its local vertical