summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
diff options
context:
space:
mode:
authorleviathan <leviathan@lindenlab.com>2026-07-20 17:44:21 -0700
committerleviathan <leviathan@lindenlab.com>2026-10-16 13:14:36 -0700
commit81a3e3178850dc6aba2a128fb35456ca795fd2d4 (patch)
tree0d29304b712a34d5a98c7b9948eee1dd95d0dc59 /indra/newview/llappviewer.cpp
parent5b4e0b746e632b09dbdf1c4d319048454d13aadc (diff)
add support for running
Diffstat (limited to 'indra/newview/llappviewer.cpp')
-rw-r--r--indra/newview/llappviewer.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index e452c39a35..83888657bc 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -5408,11 +5408,17 @@ void LLAppViewer::idle()
// current avatar state so the runtime mappings and gating track it.
gAgent.updateGameControlMode();
- // get control flags from each side
+ // Read the agent's control flags now, before applyExternalActions() below
+ // (which drives the avatar from a real game controller) has a chance to
+ // fold any controller-driven movement into them this frame -- so the
+ // keyboard-derived GameControl state computed here can never be sourced
+ // from the controller's own output. See LLGameControllerManager::
+ // setExternalInput()/accumulateFinalState() for where the two are
+ // combined (only as fully-independent final ServerStates).
U32 control_flags = gAgent.getControlFlags();
// apply to GameControl
- LLGameControl::setExternalInput(control_flags, gAgent.getGameControlButtonsFromKeys());
+ LLGameControl::setExternalInput(control_flags, gAgent.getGameControlButtonsFromKeys(), gAgent.getRunning());
if (LLPanelPreferenceGameControl::isWaitingForInputChannel())
{
LLPanelPreferenceGameControl::applyGameControlInput();