From 534ed2d3ffbe0941c946f045efb795c026f34067 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sat, 4 Jan 2020 16:53:51 +0100 Subject: [PATCH] Make shift+0-9 behave as on US keyboards Fixes #532 --- SourceX/miniwin/misc_msg.cpp | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/SourceX/miniwin/misc_msg.cpp b/SourceX/miniwin/misc_msg.cpp index fb2a868f1..00fe322e8 100644 --- a/SourceX/miniwin/misc_msg.cpp +++ b/SourceX/miniwin/misc_msg.cpp @@ -642,7 +642,38 @@ WINBOOL TranslateMessage(const MSG *lpMsg) if (!upper && is_alpha) { key = tolower(key); } else if (shift && is_numeric) { - key = key == '0' ? ')' : key - 0x10; + switch (key) { + case '1': + key = '!'; + break; + case '2': + key = '@'; + break; + case '3': + key = '#'; + break; + case '4': + key = '$'; + break; + case '5': + key = '%'; + break; + case '6': + key = '^'; + break; + case '7': + key = '&'; + break; + case '8': + key = '*'; + break; + case '9': + key = '('; + break; + case '0': + key = ')'; + break; + } } else if (is_oem) { // XXX: This probably only supports US keyboard layout switch (key) { @@ -667,7 +698,6 @@ WINBOOL TranslateMessage(const MSG *lpMsg) case DVL_VK_OEM_7: key = shift ? '"' : '\''; break; - case DVL_VK_OEM_MINUS: key = shift ? '_' : '-'; break;