Changed how key state is tracked on X11. Now updating key state

on every key press and release so we don't have to updateKeys()
in isLockedToScreen().  However, if any key appears to be down
we still call updateKeys() to double check that it's really down.
If not we note the spurious lock and don't lock to the screen.
This commit is contained in:
crs
2004-03-14 17:55:53 +00:00
parent 6f19fcfe39
commit 20ba10bfa8
11 changed files with 382 additions and 310 deletions

View File

@@ -173,21 +173,21 @@ CXWindowsKeyMapper::update(Display* display, IKeyState* keyState)
// transfer to our state
for (UInt32 i = 0, j = 0; i < 32; j += 8, ++i) {
if ((keys[i] & 0x01) != 0)
keyState->setKeyDown(j + 0);
keyState->setKeyDown(j + 0, true);
if ((keys[i] & 0x02) != 0)
keyState->setKeyDown(j + 1);
keyState->setKeyDown(j + 1, true);
if ((keys[i] & 0x04) != 0)
keyState->setKeyDown(j + 2);
keyState->setKeyDown(j + 2, true);
if ((keys[i] & 0x08) != 0)
keyState->setKeyDown(j + 3);
keyState->setKeyDown(j + 3, true);
if ((keys[i] & 0x10) != 0)
keyState->setKeyDown(j + 4);
keyState->setKeyDown(j + 4, true);
if ((keys[i] & 0x20) != 0)
keyState->setKeyDown(j + 5);
keyState->setKeyDown(j + 5, true);
if ((keys[i] & 0x40) != 0)
keyState->setKeyDown(j + 6);
keyState->setKeyDown(j + 6, true);
if ((keys[i] & 0x80) != 0)
keyState->setKeyDown(j + 7);
keyState->setKeyDown(j + 7, true);
}
// set toggle modifier states