You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by de...@apache.org on 2014/01/06 09:56:15 UTC

git commit: updated refs/heads/4.3 to ef51def

Updated Branches:
  refs/heads/4.3 811b0856d -> ef51def9f


CLOUDSTACK-5716: fixed can't type special character in console view


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ef51def9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ef51def9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ef51def9

Branch: refs/heads/4.3
Commit: ef51def9fff3610b13f50be39c7610262d4a1c04
Parents: 811b085
Author: Anshul Gangwar <an...@citrix.com>
Authored: Fri Jan 3 17:03:36 2014 +0530
Committer: Devdeep Singh <de...@gmail.com>
Committed: Mon Jan 6 14:12:27 2014 +0530

----------------------------------------------------------------------
 .../adapter/AwtRdpKeyboardAdapter.java          |  3 +-
 .../consoleproxy/ConsoleProxyRdpClient.java     | 29 +++++++-------------
 .../cloud/consoleproxy/rdp/KeysymToKeycode.java | 27 ++++++++++++++++--
 3 files changed, 36 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ef51def9/services/console-proxy-rdp/rdpconsole/src/main/java/rdpclient/adapter/AwtRdpKeyboardAdapter.java
----------------------------------------------------------------------
diff --git a/services/console-proxy-rdp/rdpconsole/src/main/java/rdpclient/adapter/AwtRdpKeyboardAdapter.java b/services/console-proxy-rdp/rdpconsole/src/main/java/rdpclient/adapter/AwtRdpKeyboardAdapter.java
index 36da0a3..2d1e8fc 100755
--- a/services/console-proxy-rdp/rdpconsole/src/main/java/rdpclient/adapter/AwtRdpKeyboardAdapter.java
+++ b/services/console-proxy-rdp/rdpconsole/src/main/java/rdpclient/adapter/AwtRdpKeyboardAdapter.java
@@ -21,7 +21,6 @@ import java.awt.event.KeyEvent;
 import streamer.BaseElement;
 import streamer.ByteBuffer;
 import streamer.Link;
-
 import common.KeyOrder;
 
 public class AwtRdpKeyboardAdapter extends BaseElement {
@@ -344,7 +343,7 @@ public class AwtRdpKeyboardAdapter extends BaseElement {
 
         default:
             System.err.println("Key is not mapped: " + event + ".");
-            return 57; // Space
+            return event.getKeyCode();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ef51def9/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxyRdpClient.java
----------------------------------------------------------------------
diff --git a/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxyRdpClient.java b/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxyRdpClient.java
index 6b317ff..d5a3fcd 100644
--- a/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxyRdpClient.java
+++ b/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxyRdpClient.java
@@ -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;
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ef51def9/services/console-proxy/server/src/com/cloud/consoleproxy/rdp/KeysymToKeycode.java
----------------------------------------------------------------------
diff --git a/services/console-proxy/server/src/com/cloud/consoleproxy/rdp/KeysymToKeycode.java b/services/console-proxy/server/src/com/cloud/consoleproxy/rdp/KeysymToKeycode.java
index 10282ad..f13dfe6 100644
--- a/services/console-proxy/server/src/com/cloud/consoleproxy/rdp/KeysymToKeycode.java
+++ b/services/console-proxy/server/src/com/cloud/consoleproxy/rdp/KeysymToKeycode.java
@@ -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];
             }