diff options
| author | Logan Dethrow <log@lindenlab.com> | 2011-06-01 17:05:38 -0400 |
|---|---|---|
| committer | Logan Dethrow <log@lindenlab.com> | 2011-06-01 17:05:38 -0400 |
| commit | 2662c4b679f0eb2745619dc4fd1dd79af65126f0 (patch) | |
| tree | f27ba8675353676d91327fc606b005f0096b2fb9 /indra/llwindow/llkeyboardheadless.cpp | |
| parent | 4b97f03b04e7df25e5b3622122f6d124d4a5f617 (diff) | |
| parent | 2002a39e4db5ba96f4a0a7653f76a3cd55846a31 (diff) | |
Merge. Pulling fix for VWR-25862 into bigger cache tree.
Diffstat (limited to 'indra/llwindow/llkeyboardheadless.cpp')
| -rw-r--r-- | indra/llwindow/llkeyboardheadless.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/indra/llwindow/llkeyboardheadless.cpp b/indra/llwindow/llkeyboardheadless.cpp index 4dfaaed4e1..c87617c9ff 100644 --- a/indra/llwindow/llkeyboardheadless.cpp +++ b/indra/llwindow/llkeyboardheadless.cpp @@ -46,5 +46,28 @@ MASK LLKeyboardHeadless::currentMask(BOOL for_mouse_event) { return MASK_NONE; } void LLKeyboardHeadless::scanKeyboard() -{ } +{ + for (S32 key = 0; key < KEY_COUNT; key++) + { + // Generate callback if any event has occurred on this key this frame. + // Can't just test mKeyLevel, because this could be a slow frame and + // key might have gone down then up. JC + if (mKeyLevel[key] || mKeyDown[key] || mKeyUp[key]) + { + mCurScanKey = key; + mCallbacks->handleScanKey(key, mKeyDown[key], mKeyUp[key], mKeyLevel[key]); + } + } + + // Reset edges for next frame + for (S32 key = 0; key < KEY_COUNT; key++) + { + mKeyUp[key] = FALSE; + mKeyDown[key] = FALSE; + if (mKeyLevel[key]) + { + mKeyLevelFrameCount[key]++; + } + } +} |
