[PATCH 5/6] user32: Translate missing vkey in nulldrv_ToUnicodeEx.

Rémi Bernon rbernon at codeweavers.com
Mon Apr 19 05:40:58 CDT 2021


As shown by user32 input and msg tests.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/user32/driver.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index d8bb7a423e7..ca790f30a63 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -504,7 +504,8 @@ static INT CDECL nulldrv_ToUnicodeEx( UINT virt, UINT scan, const BYTE *state, L
 
     if (scan & 0x8000) return 0; /* key up */
 
-    if (!ctrl)
+    if (virt == VK_ESCAPE) buffer[0] = VK_ESCAPE;
+    else if (!ctrl)
     {
         switch (virt)
         {
@@ -559,6 +560,8 @@ static INT CDECL nulldrv_ToUnicodeEx( UINT virt, UINT scan, const BYTE *state, L
         case VK_OEM_5:     buffer[0] = 0x1c; break;
         case VK_OEM_6:     buffer[0] = 0x1d; break;
         case VK_SUBTRACT:  buffer[0] = 0x1e; break;
+        case VK_RETURN:    buffer[0] = shift ? 0 : '\n'; break;
+        case VK_SPACE:     buffer[0] = ' '; break;
         default:
             if (virt >= 'A' && virt <= 'Z') buffer[0] = virt - 'A' + 1;
             break;
-- 
2.31.0




More information about the wine-devel mailing list