// Update modifier state
if (cap.modifier) {
- // Toggle pressed state
- key.pressed = !key.pressed;
-
// Construct classname for modifier
var modifierClass = "guac-keyboard-modifier-" + cap.modifier;
+ var modifierFlag = getModifier(cap.modifier);
+
+ // Toggle modifier state
+ on_screen_keyboard.modifiers ^= modifierFlag;
// Activate modifier if pressed
- if (key.pressed) {
- on_screen_keyboard.modifiers |= getModifier(cap.modifier);
+ if (on_screen_keyboard.modifiers & modifierFlag)
keyboard.classList.add(modifierClass);
- }
// Deactivate if not pressed
- else {
- on_screen_keyboard.modifiers &= ~getModifier(cap.modifier);
+ else
keyboard.classList.remove(modifierClass);
- }
}
this.size = 1;
/**
- * Whether this key is currently pressed.
- */
- this.pressed = false;
-
- /**
* An associative map of all caps by modifier.
*/
this.caps = {};