From 8ed11d8bb11e60c4dcb113564b4457da809db5bf Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 8 May 2012 13:12:17 +0900 Subject: [PATCH] winex11.drv: Use XK_KP_Decimal as a fallback if XK_KP_Separator doesn't work. --- dlls/winex11.drv/keyboard.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c index 090eae4d9ff..7e49ffba24d 100644 --- a/dlls/winex11.drv/keyboard.c +++ b/dlls/winex11.drv/keyboard.c @@ -2220,7 +2220,11 @@ UINT CDECL X11DRV_MapVirtualKeyEx(UINT wCode, UINT wMapType, HKL hkl) * in order to produce a locale dependent numeric separator. */ if (wCode == VK_DECIMAL || wCode == VK_SEPARATOR) - e.keycode = XKeysymToKeycode(e.display, XK_KP_Separator); + { + e.keycode = XKeysymToKeycode(e.display, XK_KP_Separator); + if (!e.keycode) + e.keycode = XKeysymToKeycode(e.display, XK_KP_Decimal); + } if (!e.keycode) { @@ -2558,7 +2562,11 @@ INT CDECL X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState * in order to produce a locale dependent numeric separator. */ if (virtKey == VK_DECIMAL || virtKey == VK_SEPARATOR) + { e.keycode = XKeysymToKeycode(e.display, XK_KP_Separator); + if (!e.keycode) + e.keycode = XKeysymToKeycode(e.display, XK_KP_Decimal); + } if (!e.keycode && virtKey != VK_NONAME) {