Windows: Fixed ignoring return value of internal function.

If the function WIN_ConvertUTF32toUTF8() failed (should currently not be
possible) a not terminated string would have been sent as text input event.

This also fixed converting characters more often than needed on key repetition.
This commit is contained in:
Philipp Wiesemann 2015-03-06 21:34:10 +01:00
parent 8f4c2a8f9c
commit 060d243f66

View File

@ -559,10 +559,11 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
GetKeyboardState(keyboardState); GetKeyboardState(keyboardState);
if (ToUnicode(wParam, (lParam >> 16) & 0xff, keyboardState, (LPWSTR)&utf32, 1, 0) > 0) { if (ToUnicode(wParam, (lParam >> 16) & 0xff, keyboardState, (LPWSTR)&utf32, 1, 0) > 0) {
WORD repetition; if (WIN_ConvertUTF32toUTF8(utf32, text)) {
for (repetition = lParam & 0xffff; repetition > 0; repetition--) { WORD repetition;
WIN_ConvertUTF32toUTF8(utf32, text); for (repetition = lParam & 0xffff; repetition > 0; repetition--) {
SDL_SendKeyboardText(text); SDL_SendKeyboardText(text);
}
} }
} }
} }