Fix for ticket 257 - add meta (apple) key to list of modifiers to ignore keypress

This commit is contained in:
James Muehlner
2013-01-16 09:50:50 -08:00
parent 0b88c48038
commit 339dc3dcc8

View File

@@ -241,7 +241,12 @@ Guacamole.Keyboard = function(element) {
/**
* Whether alt is currently pressed.
*/
"alt" : false
"alt" : false,
/**
* Whether meta (apple key) is currently pressed.
*/
"meta" : false
};
@@ -431,10 +436,11 @@ Guacamole.Keyboard = function(element) {
return;
}
// Ctrl/Alt/Shift
// Ctrl/Alt/Shift/Meta
if (keynum == 16) guac_keyboard.modifiers.shift = true;
else if (keynum == 17) guac_keyboard.modifiers.ctrl = true;
else if (keynum == 18) guac_keyboard.modifiers.alt = true;
else if (keynum == 91) guac_keyboard.modifiers.meta = true;
// Try to get keysym from keycode
var keysym = keysyom_from_keycode(keynum);
@@ -459,7 +465,8 @@ Guacamole.Keyboard = function(element) {
// means we cannot cancel keydown).
if (!isTypable(e.keyIdentifier)
|| ( guac_keyboard.modifiers.ctrl && !guac_keyboard.modifiers.alt)
|| (!guac_keyboard.modifiers.ctrl && guac_keyboard.modifiers.alt))
|| (!guac_keyboard.modifiers.ctrl && guac_keyboard.modifiers.alt)
|| (guac_keyboard.modifiers.meta))
expect_keypress = false;
}
@@ -519,10 +526,11 @@ Guacamole.Keyboard = function(element) {
if (window.event) keynum = window.event.keyCode;
else if (e.which) keynum = e.which;
// Ctrl/Alt/Shift
// Ctrl/Alt/Shift/Meta
if (keynum == 16) guac_keyboard.modifiers.shift = false;
else if (keynum == 17) guac_keyboard.modifiers.ctrl = false;
else if (keynum == 18) guac_keyboard.modifiers.alt = false;
else if (keynum == 91) guac_keyboard.modifiers.meta = false;
// Send release event if original key known
var keydown_keysym = keydownChar[keynum];
@@ -539,6 +547,7 @@ Guacamole.Keyboard = function(element) {
guac_keyboard.modifiers.alt = false;
guac_keyboard.modifiers.ctrl = false;
guac_keyboard.modifiers.shift = false;
guac_keyboard.modifiers.meta = false;
}, true);
};