mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-09 20:01:19 +08:00
Fixed space key input when IME ON in SDL2 version
This commit is contained in:
parent
d8c1d83c04
commit
3d9f431750
@ -5744,7 +5744,7 @@ void GFX_Events() {
|
|||||||
if (event.type == SDL_KEYDOWN && isModifierApplied())
|
if (event.type == SDL_KEYDOWN && isModifierApplied())
|
||||||
ClipKeySelect(event.key.keysym.sym);
|
ClipKeySelect(event.key.keysym.sym);
|
||||||
if(dos.im_enable_flag) {
|
if(dos.im_enable_flag) {
|
||||||
#if defined (WIN32) && !defined(HX_DOS) || defined(MACOSX)
|
#if defined(MACOSX)
|
||||||
if(event.type == SDL_KEYDOWN && IME_GetEnable()) {
|
if(event.type == SDL_KEYDOWN && IME_GetEnable()) {
|
||||||
// Enter, BS, TAB, <-, ->
|
// Enter, BS, TAB, <-, ->
|
||||||
if(event.key.keysym.sym == 0x0d || event.key.keysym.sym == 0x08 || event.key.keysym.sym == 0x09 || (event.key.keysym.scancode >= 0x4f && event.key.keysym.scancode <= 0x52)) {
|
if(event.key.keysym.sym == 0x0d || event.key.keysym.sym == 0x08 || event.key.keysym.sym == 0x09 || (event.key.keysym.scancode >= 0x4f && event.key.keysym.scancode <= 0x52)) {
|
||||||
@ -5752,16 +5752,14 @@ void GFX_Events() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if((event.key.keysym.mod & 0x03) == 0 && event.key.keysym.scancode == 0x2c && ime_text.size() == 0 && dos.loaded_codepage == 932) {
|
if(event.key.keysym.scancode == 0x2c && ime_text.size() == 0 && dos.loaded_codepage == 932) {
|
||||||
// Zenkaku space
|
if((event.key.keysym.mod & 0x03) == 0) {
|
||||||
BIOS_AddKeyToBuffer(0xf100 | 0x81);
|
// Zenkaku space
|
||||||
BIOS_AddKeyToBuffer(0xf000 | 0x40);
|
BIOS_AddKeyToBuffer(0xf100 | 0x81);
|
||||||
break;
|
BIOS_AddKeyToBuffer(0xf000 | 0x40);
|
||||||
}
|
break;
|
||||||
#if defined(WIN32)
|
}
|
||||||
else if(ime_text.size() != 0)
|
} else break;
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -636,7 +636,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||||||
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
|
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((wParam != VK_PROCESSKEY || (lParam >> 16) == 0x39) && code != SDL_SCANCODE_UNKNOWN) {
|
if (wParam != VK_PROCESSKEY && code != SDL_SCANCODE_UNKNOWN) {
|
||||||
SDL_SendKeyboardKey(SDL_PRESSED, code);
|
SDL_SendKeyboardKey(SDL_PRESSED, code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -892,6 +892,16 @@ IME_HandleMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM *lParam, SDL_VideoD
|
|||||||
IME_InputLangChanged(videodata);
|
IME_InputLangChanged(videodata);
|
||||||
break;
|
break;
|
||||||
case WM_IME_CHAR:
|
case WM_IME_CHAR:
|
||||||
|
if(wParam == 0x20) {
|
||||||
|
// enable IME input space
|
||||||
|
PostMessage(hwnd, WM_KEYDOWN, 0x20, 0x390001);
|
||||||
|
} else if(wParam == 0x3000) {
|
||||||
|
// input Zenkaku space
|
||||||
|
videodata->ime_composition[0] = 0x3000;
|
||||||
|
videodata->ime_composition[1] = 0;
|
||||||
|
IME_SendEditingEvent(videodata);
|
||||||
|
IME_SendInputEvent(videodata);
|
||||||
|
}
|
||||||
trap = SDL_TRUE;
|
trap = SDL_TRUE;
|
||||||
break;
|
break;
|
||||||
case WM_IME_SETCONTEXT:
|
case WM_IME_SETCONTEXT:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user