mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
Fix for ticket 257 - add meta (apple) key to list of modifiers to ignore keypress
This commit is contained in:
@@ -241,7 +241,12 @@ Guacamole.Keyboard = function(element) {
|
|||||||
/**
|
/**
|
||||||
* Whether alt is currently pressed.
|
* 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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ctrl/Alt/Shift
|
// Ctrl/Alt/Shift/Meta
|
||||||
if (keynum == 16) guac_keyboard.modifiers.shift = true;
|
if (keynum == 16) guac_keyboard.modifiers.shift = true;
|
||||||
else if (keynum == 17) guac_keyboard.modifiers.ctrl = true;
|
else if (keynum == 17) guac_keyboard.modifiers.ctrl = true;
|
||||||
else if (keynum == 18) guac_keyboard.modifiers.alt = 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
|
// Try to get keysym from keycode
|
||||||
var keysym = keysyom_from_keycode(keynum);
|
var keysym = keysyom_from_keycode(keynum);
|
||||||
@@ -450,7 +456,7 @@ Guacamole.Keyboard = function(element) {
|
|||||||
if (e.keyIdentifier) {
|
if (e.keyIdentifier) {
|
||||||
|
|
||||||
keysym = keysym ||
|
keysym = keysym ||
|
||||||
keysym_from_key_identifier(guac_keyboard.modifiers.shift, e.keyIdentifier);
|
keysym_from_key_identifier(guac_keyboard.modifiers.shift, e.keyIdentifier);
|
||||||
|
|
||||||
// Prevent default if non-typable character or if modifier combination
|
// Prevent default if non-typable character or if modifier combination
|
||||||
// likely to be eaten by browser otherwise (NOTE: We must not prevent
|
// likely to be eaten by browser otherwise (NOTE: We must not prevent
|
||||||
@@ -458,8 +464,9 @@ Guacamole.Keyboard = function(element) {
|
|||||||
// AltGr. If we receive AltGr, we need to handle keypress, which
|
// AltGr. If we receive AltGr, we need to handle keypress, which
|
||||||
// means we cannot cancel keydown).
|
// means we cannot cancel keydown).
|
||||||
if (!isTypable(e.keyIdentifier)
|
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.ctrl && guac_keyboard.modifiers.alt)
|
||||||
|
|| (guac_keyboard.modifiers.meta))
|
||||||
expect_keypress = false;
|
expect_keypress = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -519,10 +526,11 @@ Guacamole.Keyboard = function(element) {
|
|||||||
if (window.event) keynum = window.event.keyCode;
|
if (window.event) keynum = window.event.keyCode;
|
||||||
else if (e.which) keynum = e.which;
|
else if (e.which) keynum = e.which;
|
||||||
|
|
||||||
// Ctrl/Alt/Shift
|
// Ctrl/Alt/Shift/Meta
|
||||||
if (keynum == 16) guac_keyboard.modifiers.shift = false;
|
if (keynum == 16) guac_keyboard.modifiers.shift = false;
|
||||||
else if (keynum == 17) guac_keyboard.modifiers.ctrl = false;
|
else if (keynum == 17) guac_keyboard.modifiers.ctrl = false;
|
||||||
else if (keynum == 18) guac_keyboard.modifiers.alt = 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
|
// Send release event if original key known
|
||||||
var keydown_keysym = keydownChar[keynum];
|
var keydown_keysym = keydownChar[keynum];
|
||||||
@@ -539,6 +547,7 @@ Guacamole.Keyboard = function(element) {
|
|||||||
guac_keyboard.modifiers.alt = false;
|
guac_keyboard.modifiers.alt = false;
|
||||||
guac_keyboard.modifiers.ctrl = false;
|
guac_keyboard.modifiers.ctrl = false;
|
||||||
guac_keyboard.modifiers.shift = false;
|
guac_keyboard.modifiers.shift = false;
|
||||||
|
guac_keyboard.modifiers.meta = false;
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user