Track pressed state for modifiers globally. Do not track pressed state of non-modifiers.

This commit is contained in:
Michael Jumper
2012-01-21 12:58:44 -08:00
parent 53683c90d2
commit c210444fac

View File

@@ -249,23 +249,20 @@ Guacamole.OnScreenKeyboard = function(url) {
// 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);
}
}
@@ -374,11 +371,6 @@ Guacamole.OnScreenKeyboard.Key = function() {
*/
this.size = 1;
/**
* Whether this key is currently pressed.
*/
this.pressed = false;
/**
* An associative map of all caps by modifier.
*/