mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-5716: fixed can't type special character in console view
This commit is contained in:
parent
513f1dba36
commit
6ebbec239d
|
|
@ -343,7 +343,7 @@ public class AwtRdpKeyboardAdapter extends BaseElement {
|
|||
|
||||
default:
|
||||
System.err.println("Key is not mapped: " + event + ".");
|
||||
return 57; // Space
|
||||
return event.getKeyCode();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,6 @@ public class ConsoleProxyRdpClient extends ConsoleProxyClientBase {
|
|||
private Thread _worker;
|
||||
private volatile boolean _workerDone = false;
|
||||
|
||||
private int _lastModifierStates = 0;
|
||||
|
||||
private AwtMouseEventSource _mouseEventSource = null;
|
||||
private AwtKeyEventSource _keyEventSource = null;
|
||||
|
||||
|
|
@ -203,26 +201,19 @@ public class ConsoleProxyRdpClient extends ConsoleProxyClientBase {
|
|||
|
||||
private int mapModifier(int modifiers) {
|
||||
int mod = 0;
|
||||
if ((modifiers & SHIFT_KEY_MASK) != (_lastModifierStates & SHIFT_KEY_MASK)) {
|
||||
if ((modifiers & SHIFT_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.SHIFT_DOWN_MASK;
|
||||
}
|
||||
|
||||
if ((modifiers & CTRL_KEY_MASK) != (_lastModifierStates & CTRL_KEY_MASK)) {
|
||||
if ((modifiers & CTRL_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.CTRL_DOWN_MASK;
|
||||
}
|
||||
if ((modifiers & SHIFT_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.SHIFT_DOWN_MASK;
|
||||
|
||||
if ((modifiers & META_KEY_MASK) != (_lastModifierStates & META_KEY_MASK)) {
|
||||
if ((modifiers & META_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.META_DOWN_MASK;
|
||||
}
|
||||
if ((modifiers & CTRL_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.CTRL_DOWN_MASK;
|
||||
|
||||
if ((modifiers & META_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.META_DOWN_MASK;
|
||||
|
||||
if ((modifiers & ALT_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.ALT_DOWN_MASK;
|
||||
|
||||
if ((modifiers & ALT_KEY_MASK) != (_lastModifierStates & ALT_KEY_MASK)) {
|
||||
if ((modifiers & ALT_KEY_MASK) != 0)
|
||||
mod = mod | InputEvent.ALT_DOWN_MASK;
|
||||
}
|
||||
_lastModifierStates = mod;
|
||||
return mod;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.awt.event.KeyEvent;
|
|||
|
||||
public class KeysymToKeycode {
|
||||
|
||||
// this keymap is taken from http://openwonderland.googlecode.com/svn/trunk/modules/foundation/xremwin/src/classes/org/jdesktop/wonderland/modules/xremwin/client/KeycodeToKeysym.java
|
||||
// some of this keymap is taken from http://openwonderland.googlecode.com/svn/trunk/modules/foundation/xremwin/src/classes/org/jdesktop/wonderland/modules/xremwin/client/KeycodeToKeysym.java
|
||||
private final static int[][] map = {
|
||||
/* XK_BackSpace */{0xFF08, KeyEvent.VK_BACK_SPACE},
|
||||
/* XK_Tab */{0xFF09, KeyEvent.VK_TAB},
|
||||
|
|
@ -101,10 +101,33 @@ public class KeysymToKeycode {
|
|||
/* XK_x */{0x0078, KeyEvent.VK_X},
|
||||
/* XK_y */{0x0079, KeyEvent.VK_Y},
|
||||
/* XK_z */{0x007a, KeyEvent.VK_Z},
|
||||
{0x0060, KeyEvent.VK_BACK_QUOTE},
|
||||
{0x007e, KeyEvent.VK_BACK_QUOTE},
|
||||
{0x0021, KeyEvent.VK_1},
|
||||
{0x0040, KeyEvent.VK_2},
|
||||
{0x0023, KeyEvent.VK_3},
|
||||
{0x0024, KeyEvent.VK_4},
|
||||
{0x0025, KeyEvent.VK_5},
|
||||
{0x005e, KeyEvent.VK_6},
|
||||
{0x0026, KeyEvent.VK_7},
|
||||
{0x002A, KeyEvent.VK_8},
|
||||
{0x0028, KeyEvent.VK_9},
|
||||
{0x0029, KeyEvent.VK_0},
|
||||
{0x005f, KeyEvent.VK_MINUS},
|
||||
{0x002b, KeyEvent.VK_EQUALS},
|
||||
{0x007b, KeyEvent.VK_OPEN_BRACKET},
|
||||
{0x007d, KeyEvent.VK_CLOSE_BRACKET},
|
||||
{0x007c, KeyEvent.VK_BACK_SLASH},
|
||||
{0x003a, KeyEvent.VK_SEMICOLON},
|
||||
{0x0027, KeyEvent.VK_QUOTE},
|
||||
{0x0022, KeyEvent.VK_QUOTE},
|
||||
{0x003c, KeyEvent.VK_COMMA},
|
||||
{0x003e, KeyEvent.VK_PERIOD},
|
||||
{0x003f, KeyEvent.VK_SLASH},
|
||||
};
|
||||
|
||||
public static int getKeycode(int keysym) {
|
||||
for (int i = 0; i < (map.length - 1); i++) {
|
||||
for (int i = 0; i < (map.length); i++) {
|
||||
if (map[i][0] == keysym) {
|
||||
return map[i][1];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue