]> source.dussan.org Git - tigervnc.git/commitdiff
Handle Korean keys on Windows
authorPierre Ossman <ossman@cendio.se>
Fri, 20 Nov 2020 08:58:03 +0000 (09:58 +0100)
committerPierre Ossman <ossman@cendio.se>
Fri, 20 Nov 2020 09:01:02 +0000 (10:01 +0100)
vncviewer/win32.c

index 92268220dc665a36c261cb2a46da34e8fb2302cf..d116ecc3f037ed2c42ab0aadc0b739e7b08e6320 100644 (file)
@@ -21,6 +21,7 @@
 
 #define XK_MISCELLANY
 #define XK_XKB_KEYS
+#define XK_KOREAN
 #include <rfb/keysymdef.h>
 #include <rfb/XF86keysym.h>
 
@@ -239,6 +240,12 @@ static const int vkey_map_jp[][3] = {
   { VK_ATTN,                XK_Romaji,      NoSymbol },
 };
 
+// Korean
+static const int vkey_map_ko[][3] = {
+  { VK_HANGUL,              XK_Hangul,      NoSymbol },
+  { VK_HANJA,               XK_Hangul_Hanja, NoSymbol },
+};
+
 static int lookup_vkey_map(UINT vkey, int extended, const int map[][3], size_t size)
 {
   size_t i;
@@ -283,6 +290,13 @@ int win32_vkey_to_keysym(UINT vkey, int extended)
       return ret;
   }
 
+  if (primary_lang == LANG_KOREAN) {
+    ret = lookup_vkey_map(vkey, extended,
+                          vkey_map_ko, ARRAY_SIZE(vkey_map_ko));
+    if (ret != NoSymbol)
+      return ret;
+  }
+
   // Windows is not consistent in which virtual key it uses for
   // the numpad decimal key, and this is not likely to be fixed:
   // http://blogs.msdn.com/michkap/archive/2006/09/13/752377.aspx