CP-41775: Fix using Hanja/Hangeul keys over VNC

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
This commit is contained in:
Ross Lagerwall 2023-02-27 17:51:18 +00:00 committed by Danilo Del Busso
parent 8cf8e6289a
commit 91b224d0c4

View File

@ -192,6 +192,8 @@ namespace DotNetVnc
private const int RIGHT_SHIFT_SCAN = 54; private const int RIGHT_SHIFT_SCAN = 54;
private const int NUM_LOCK_SCAN = 69; private const int NUM_LOCK_SCAN = 69;
private const int HANJA_SCAN = 0xf1;
private const int HANGEUL_SCAN = 0xf2;
private static int HookCallback(int nCode, int wParam, KBDLLHOOKSTRUCT* lParam) private static int HookCallback(int nCode, int wParam, KBDLLHOOKSTRUCT* lParam)
{ {
@ -222,6 +224,16 @@ namespace DotNetVnc
case RIGHT_SHIFT_SCAN: case RIGHT_SHIFT_SCAN:
case NUM_LOCK_SCAN: case NUM_LOCK_SCAN:
break; break;
/* QEMU expects "QNum" scancodes on the wire and these
* are different for the Hanja and Hangeul keys. Update
* accordingly.
*/
case HANJA_SCAN:
scanCode = 0x71;
break;
case HANGEUL_SCAN:
scanCode = 0x72;
break;
default: default:
/* 128 is added to scanCode to differentiate /* 128 is added to scanCode to differentiate
* an extended key. Scan code for all extended keys * an extended key. Scan code for all extended keys