More fixes for key event issues.  It seems that on WindowsXP sending the actual key press/release separately can be mis-interpreted by the server as holding the key down.  Using a keyTyped event for all character input ensures that we can send an immediate down/up.  It also works around the broken AltGr detection in Java 6.  Also added support for more keys (F13-F24, etc.).  Some key definitions in java don't have X11 equivalents or I could not be sure so I've left them commented out.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5066 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/com/tigervnc/rfb/Keysyms.java b/java/com/tigervnc/rfb/Keysyms.java
index 93aea12..4cf1784 100644
--- a/java/com/tigervnc/rfb/Keysyms.java
+++ b/java/com/tigervnc/rfb/Keysyms.java
@@ -1,5 +1,6 @@
 /* Copyright (C) 2002-2005 RealVNC Ltd.  All Rights Reserved.
  * Copyright (C) 2012-2013 D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2013 Brian P. Hinz
  *
  * This is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,6 +28,7 @@
 
 public class Keysyms {
 
+  public static final int ISO_Level3_Shift = 0xFE03;
   public static final int BackSpace = 0xFF08;
   public static final int Tab = 0xFF09;
   public static final int Linefeed = 0xFF0A;
@@ -38,6 +40,33 @@
   public static final int Escape = 0xFF1B;
   public static final int Delete = 0xFFFF;
 
+  public static final int Multi_key = 0xFF20;  /* Multi-key character compose */
+  public static final int Codeinput = 0xFF37;
+  public static final int SingleCandidate = 0xFF3C;
+  public static final int MultipleCandidate = 0xFF3D;
+  public static final int PreviousCandidate = 0xFF3E;
+
+  public static final int Kanji = 0xFF21;  /* Kanji, Kanji convert */
+  public static final int Muhenkan = 0xFF22;  /* Cancel Conversion */
+  public static final int Henkan_Mode = 0xFF23;  /* Start/Stop Conversion */
+  public static final int Henkan = 0xFF23;  /* Alias for Henkan_Mode */
+  public static final int Romaji = 0xFF24;  /* to Romaji */
+  public static final int Hiragana = 0xFF25;  /* to Hiragana */
+  public static final int Katakana = 0xFF26;  /* to Katakana */
+  public static final int Hiragana_Katakana = 0xFF27;  /* Hiragana/Katakana toggle */
+  public static final int Zenkaku = 0xFF28;  /* to Zenkaku */
+  public static final int Hankaku = 0xFF29;  /* to Hankaku */
+  public static final int Zenkaku_Hankaku = 0xFF2A;  /* Zenkaku/Hankaku toggle */
+  public static final int Touroku = 0xFF2B;  /* Add to Dictionary */
+  public static final int Massyo = 0xFF2C;  /* Delete from Dictionary */
+  public static final int Kana_Lock = 0xFF2D;  /* Kana Lock */
+  public static final int Kana_Shift = 0xFF2E;  /* Kana Shift */
+  public static final int Eisu_Shift = 0xFF2F;  /* Alphanumeric Shift */
+  public static final int Eisu_toggle = 0xFF30;  /* Alphanumeric toggle */
+  public static final int Kanji_Bangou = 0xFF37;  /* Codeinput */
+  public static final int Zen_Koho = 0xFF3D;  /* Multiple/All Candidate(s) */
+  public static final int Mae_Koho = 0xFF3E;  /* Previous Candidate */
+
   public static final int Home = 0xFF50;
   public static final int Left = 0xFF51;
   public static final int Up = 0xFF52;
@@ -78,6 +107,17 @@
   public static final int F11 = 0xFFC8;
   public static final int F12 = 0xFFC9;
   public static final int F13 = 0xFFCA;
+  public static final int F14 = 0xFFCB;
+  public static final int F15 = 0xFFCC;
+  public static final int F16 = 0xFFCD;
+  public static final int F17 = 0xFFCE;
+  public static final int F18 = 0xFFCF;
+  public static final int F19 = 0xFFD0;
+  public static final int F20 = 0xFFD1;
+  public static final int F21 = 0xFFD2;
+  public static final int F22 = 0xFFD3;
+  public static final int F23 = 0xFFD4;
+  public static final int F24 = 0xFFD5;
 
   public static final int Shift_L = 0xFFE1;
   public static final int Shift_R = 0xFFE2;