From 7ba777c8f437b1dc8b17e88dda44e6ee955501ee Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sat, 21 Jan 2012 12:58:44 -0800 Subject: [PATCH] Track pressed state for modifiers globally. Do not track pressed state of non-modifiers. --- src/main/resources/oskeyboard.js | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/resources/oskeyboard.js b/src/main/resources/oskeyboard.js index 476f7ea..2c095fb 100644 --- a/src/main/resources/oskeyboard.js +++ b/src/main/resources/oskeyboard.js @@ -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); - } } @@ -375,11 +372,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. */ this.caps = {}; -- 1.7.10.4