--- vnc-4_1-javasrc/java/rfb/Keysyms.java.orig 2008-01-15 15:55:10.561444000 +0900
+++ vnc-4_1-javasrc/java/rfb/Keysyms.java 2008-01-15 15:56:25.564721000 +0900
@@ -63,6 +63,12 @@ public class Keysyms {
public static final int script_switch = 0xFF7E;
public static final int Num_Lock = 0xFF7F;
+ public static final int KP_Left = 0xFF96;
+ public static final int KP_Up = 0xFF97;
+ public static final int KP_Right = 0xFF98;
+ public static final int KP_Down = 0xFF99;
+ public static final int KP_Begin = 0xFF9d;
+
public static final int F1 = 0xFFBE;
public static final int F2 = 0xFFBF;
public static final int F3 = 0xFFC0;
@@ -84,4 +90,7 @@ public class Keysyms {
public static final int Meta_R = 0xFFE8;
public static final int Alt_L = 0xFFE9;
public static final int Alt_R = 0xFFEA;
+
+ public static final int Kanji = 0xFF21;
+ public static final int Henkan_Mode = 0xFF23;
}
--- vnc-4_1-javasrc/java/rfb/UnicodeToKeysym.java.orig 2008-01-15 15:12:34.345738000 +0900
+++ vnc-4_1-javasrc/java/rfb/UnicodeToKeysym.java 2008-01-15 17:11:07.898546000 +0900
@@ -775,6 +775,11 @@ public class UnicodeToKeysym {
(unicode >= 0xa0 && unicode <= 0xff))
return unicode;
+ /* From HALFWIDTH IDEOGRAPHIC FULL STOP (U+FF61)
+ * To HALFWIDTH KATAKANA SEMI-VOICED SOURND MARK (U+FF9F) */
+ if ((unicode >= 0xff61 && unicode <= 0xff9f))
+ return unicode - 64192;
+
int min = 0;
int max = table.length - 1;
int mid;
--- vnc-4_1-javasrc/java/vncviewer/CConn.java.orig 2008-01-15 15:55:46.024607000 +0900
+++ vnc-4_1-javasrc/java/vncviewer/CConn.java 2008-01-15 17:24:45.512185000 +0900
@@ -521,6 +521,16 @@ public class CConn extends rfb.CConnecti
case KeyEvent.VK_PRINTSCREEN: keysym = rfb.Keysyms.Print; break;
case KeyEvent.VK_PAUSE: keysym = rfb.Keysyms.Pause; break;
case KeyEvent.VK_INSERT: keysym = rfb.Keysyms.Insert; break;
+ case KeyEvent.VK_KP_LEFT: keysym = rfb.Keysyms.KP_Left; break;
+ case KeyEvent.VK_KP_UP: keysym = rfb.Keysyms.KP_Up; break;
+ case KeyEvent.VK_KP_RIGHT: keysym = rfb.Keysyms.KP_Right; break;
+ case KeyEvent.VK_KP_DOWN: keysym = rfb.Keysyms.KP_Down; break;
+ case KeyEvent.VK_BEGIN: keysym = rfb.Keysyms.KP_Begin; break;
+ case KeyEvent.VK_ACCEPT: keysym = rfb.Keysyms.Execute; break;
+ case KeyEvent.VK_CONVERT: keysym = rfb.Keysyms.Kanji; break;
+ case KeyEvent.VK_INPUT_METHOD_ON_OFF:
+ keysym = rfb.Keysyms.Henkan_Mode; break;
+ case KeyEvent.VK_KANA_LOCK: keysym = rfb.Keysyms.Mode_switch; break;
default: return;
}
}
--- vnc-4_1-javasrc/java/vncviewer/DesktopWindow.java.orig 2008-01-15 15:56:17.533387000 +0900
+++ vnc-4_1-javasrc/java/vncviewer/DesktopWindow.java 2008-01-15 15:56:25.574174000 +0900
@@ -48,6 +48,8 @@ class DesktopWindow extends Canvas imple
cursorBacking = new rfb.ManagedPixelBuffer();
addMouseListener(this);
addMouseMotionListener(this);
+ // Disable local input methods and use remote input methods.
+ enableInputMethods(false);
addKeyListener(this);
this.setFocusTraversalKeysEnabled(false);
addFocusListener(this);