mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-7373: Incorrect Japanese keyboard mapping with CentOS CLI guestOS on VMware.
Fixed the jp keyboard issues for VMs deployed with keyboard=jp param.
This commit is contained in:
parent
3a3e5cbbbb
commit
4796cceb34
@ -275,76 +275,15 @@ var keyboardTables = [
|
||||
{keycode: 244, entry : 0x7e, browser: "IE"},
|
||||
//Caps Lock = 240
|
||||
{keycode: 240, entry : 0xffe5},
|
||||
/*
|
||||
{keycode: JS_KEY_MULTIPLY, entry : [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0 },
|
||||
{type: KEY_DOWN, code: X11_KEY_ASTERISK, modifiers: 0 },
|
||||
{type: KEY_UP, code: X11_KEY_ASTERISK, modifiers: 0 },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0 }
|
||||
]},
|
||||
{keycode: JS_KEY_ADD, entry : false}
|
||||
*/
|
||||
//[186 / 58 = "~^"]
|
||||
{keycode: 186, entry : 0x22, browser: "IE"},
|
||||
{keycode: 58, entry : 0x22, guestos: "windows", browser: "Firefox"},
|
||||
],
|
||||
keyPress: [
|
||||
// 34 : " " "
|
||||
{keycode: 34, entry: [{type: KEY_DOWN, code: 0x22, modifiers: 64, shift: true }]},
|
||||
{keycode: 42, entry: 0xffaa },
|
||||
// 39 : " ' " (shift+7)
|
||||
{keycode: 39, entry: [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x22, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: 0x22, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x22, modifiers: 0, shift: true },
|
||||
{type: KEY_UP, code: 0x22, modifiers: 0, shift: true },
|
||||
]}, //58 : " : "
|
||||
{keycode: 58, entry: [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x3a, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: 0x3a, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x3a, modifiers: 0, shift: true },
|
||||
{type: KEY_UP, code: 0x3a, modifiers: 0, shift: true },
|
||||
]},
|
||||
// 94 : "^"
|
||||
{keycode: 94, entry: [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x36, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: 0x36, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x36, modifiers: 0, shift: true },
|
||||
{type: KEY_UP, code: 0x36, modifiers: 0, shift: true },
|
||||
]},
|
||||
// 64 : "@"
|
||||
{keycode: 64, entry: [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x32, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: 0x32, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x32, modifiers: 0, shift: true },
|
||||
{type: KEY_UP, code: 0x32, modifiers: 0, shift: true },
|
||||
]},
|
||||
// 96 : "'"
|
||||
{keycode: 96, entry: [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x7e, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: 0x7e, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x7e, modifiers: 0, shift: true },
|
||||
{type: KEY_UP, code: 0x7e, modifiers: 0, shift: true },
|
||||
]},
|
||||
// 61 : "="
|
||||
{keycode: 61, entry: [
|
||||
{type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x3d, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: 0x3d, modifiers: 0, shift: false },
|
||||
{type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: KEY_DOWN, code: 0x3d, modifiers: 0, shift: true },
|
||||
{type: KEY_UP, code: 0x3d, modifiers: 0, shift: true },
|
||||
]},
|
||||
// These mappings are for japanese guestOS. it is recommended that admin should deploy
|
||||
// the VM with "keyboard=jp" paramenter or change the VM properties in hypervisor to use jp mapping.
|
||||
{keycode: 42, entry: 0xffaa}, // *
|
||||
{keycode: 43, entry: 0xffab}, // +
|
||||
]
|
||||
}
|
||||
}, {tindex: 2, keyboardType: KEYBOARD_TYPE_UK, mappingTable:
|
||||
|
||||
@ -161,7 +161,7 @@ KeyboardMapper.prototype = {
|
||||
}
|
||||
|
||||
var X11Keysym = code;
|
||||
if(this.jsX11KeysymMap[code] != undefined && (guestos == 'windows' || modifiers != AjaxViewer.SHIFT_KEY_MASK)) {
|
||||
if(this.jsX11KeysymMap[code] != undefined && (guestos == 'windows' || modifiers != AjaxViewer.SHIFT_KEY_MASK || code == AjaxViewer.JS_KEY_CAPSLOCK)) {
|
||||
X11Keysym = this.jsX11KeysymMap[code];
|
||||
if(typeof this.jsX11KeysymMap[code] == "boolean") {
|
||||
return;
|
||||
@ -184,6 +184,10 @@ KeyboardMapper.prototype = {
|
||||
this.mappedInput.push({type : eventType, code: this.jsX11KeysymMap[code], modifiers: modifiers});
|
||||
|
||||
} else if(eventType == AjaxViewer.KEY_PRESS && guestos == 'null') {
|
||||
// ENTER/BACKSPACE key should already have been sent through KEY DOWN/KEY UP event
|
||||
if(code == AjaxViewer.JS_KEY_ENTER || code == AjaxViewer.JS_KEY_BACKSPACE)
|
||||
return;
|
||||
|
||||
var X11Keysym = code;
|
||||
X11Keysym = this.jsKeyPressX11KeysymMap[code];
|
||||
if(X11Keysym) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user