mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-08 06:01:22 +00:00
Track pressed state for modifiers globally. Do not track pressed state of non-modifiers.
This commit is contained in:
@@ -249,23 +249,20 @@ Guacamole.OnScreenKeyboard = function(url) {
|
|||||||
// Update modifier state
|
// Update modifier state
|
||||||
if (cap.modifier) {
|
if (cap.modifier) {
|
||||||
|
|
||||||
// Toggle pressed state
|
|
||||||
key.pressed = !key.pressed;
|
|
||||||
|
|
||||||
// Construct classname for modifier
|
// Construct classname for modifier
|
||||||
var modifierClass = "guac-keyboard-modifier-" + cap.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
|
// Activate modifier if pressed
|
||||||
if (key.pressed) {
|
if (on_screen_keyboard.modifiers & modifierFlag)
|
||||||
on_screen_keyboard.modifiers |= getModifier(cap.modifier);
|
|
||||||
keyboard.classList.add(modifierClass);
|
keyboard.classList.add(modifierClass);
|
||||||
}
|
|
||||||
|
|
||||||
// Deactivate if not pressed
|
// Deactivate if not pressed
|
||||||
else {
|
else
|
||||||
on_screen_keyboard.modifiers &= ~getModifier(cap.modifier);
|
|
||||||
keyboard.classList.remove(modifierClass);
|
keyboard.classList.remove(modifierClass);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,11 +371,6 @@ Guacamole.OnScreenKeyboard.Key = function() {
|
|||||||
*/
|
*/
|
||||||
this.size = 1;
|
this.size = 1;
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether this key is currently pressed.
|
|
||||||
*/
|
|
||||||
this.pressed = false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An associative map of all caps by modifier.
|
* An associative map of all caps by modifier.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user