// update the state of our modifier keys private void updateModifierKeyStates() { // check if any key is in the keycodes list List<Keyboard.Key> keys = modifiersKeyboard.getKeys(); for (Iterator<Keyboard.Key> it = keys.iterator(); it.hasNext(); ) { // if the key is a sticky key - just set it to off Keyboard.Key curKey = it.next(); if (curKey.sticky) { switch (keyboardMapper.getModifierState(curKey.codes[0])) { case KeyboardMapper.KEYSTATE_ON: curKey.on = true; curKey.pressed = false; break; case KeyboardMapper.KEYSTATE_OFF: curKey.on = false; curKey.pressed = false; break; case KeyboardMapper.KEYSTATE_LOCKED: curKey.on = true; curKey.pressed = true; break; } } } // refresh image modifiersKeyboardView.invalidateAllKeys(); }