fix gdi backend bug

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@610 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-11-06 16:27:19 +00:00
parent 06753e97f5
commit 9874b24846
3 changed files with 17 additions and 3 deletions

View File

@@ -130,13 +130,15 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
int n = wp;
const int base = 'A' - 1;
if(0x00 <= n && n <= 0x1f) {
if(n <= 0x1f) {
n = (n + base) | MwLLControlMask;
if(!(HIBYTE(VkKeyScan(wp)) & 1)) n += 0x20;
if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20;
}
if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwLLControlMask;
if(msg == WM_SYSCHAR) n |= MwLLAltMask;
printf("%c\n", n & 0xff);
if((0x20 <= n && n <= 0x7f) || (n & MwLLKeyMask)) MwLLDispatch(u->ll, key, &n);
} else if(msg == WM_SETFOCUS) {
MwLLDispatch(u->ll, focus_in, NULL);