From 738bd10b298b641938f42ec2db2d7253cea1a3c8 Mon Sep 17 00:00:00 2001 From: Daekwang Ryu Date: Tue, 27 Dec 2022 19:25:43 +0900 Subject: [PATCH] Fix TEXTINPUT bug When I referred Wayland port, it creates both KEY and TEXTINPUT events. So I followed the code. Plus, we don't have to get scancodes with SDL_GetScancodeFromName(). Change-Id: I3a82c295f09c9961b7d06661236f6eb4e2ab69d6 --- src/video/tizen/SDL_tizenevents.c | 57 ++++++--------------------------------- 1 file changed, 8 insertions(+), 49 deletions(-) diff --git a/src/video/tizen/SDL_tizenevents.c b/src/video/tizen/SDL_tizenevents.c index 82278b3..b3428f4 100755 --- a/src/video/tizen/SDL_tizenevents.c +++ b/src/video/tizen/SDL_tizenevents.c @@ -119,31 +119,8 @@ _tizen_cb_event_keyup_change(void *data, int type, void *event) } } - if (SDL_GetEventState(SDL_TEXTINPUT)) { - if (!strcmp(e->key, "BackSpace")) { - scancode = SDL_GetScancodeFromName(e->key); - SDL_SendKeyboardKey(SDL_RELEASED, scancode); - } - else if (!strcmp(e->key, "Delete") || - (!strcmp(e->key, "KP_Delete") && !e->string)) { - scancode = SDL_GetScancodeFromName(e->key); - SDL_SendKeyboardKey(SDL_RELEASED, scancode); - } - else if ((!strcmp(e->key, "Return")) || (!strcmp(e->key, "KP_Enter"))) { - scancode = SDL_GetScancodeFromName(e->key); - SDL_SendKeyboardKey(SDL_RELEASED, scancode); - } - else if (e->string) { - // Nothing - } - else { - scancode = TranslateKeycode(e->keycode); - SDL_SendKeyboardKey(SDL_RELEASED, scancode); - } - } else { - scancode = TranslateKeycode(e->keycode); - SDL_SendKeyboardKey(SDL_RELEASED, scancode); - } + scancode = TranslateKeycode(e->keycode); + SDL_SendKeyboardKey(SDL_RELEASED, scancode); return ECORE_CALLBACK_PASS_ON; } @@ -176,30 +153,12 @@ _tizen_cb_event_keydown_change(void *data, int type, void *event) } } - if (SDL_GetEventState(SDL_TEXTINPUT)) { - if (!strcmp(e->key, "BackSpace")) { - scancode = SDL_GetScancodeFromName(e->key); - SDL_SendKeyboardKey(SDL_PRESSED, scancode); - } - else if (!strcmp(e->key, "Delete") || - (!strcmp(e->key, "KP_Delete") && !e->string)) { - scancode = SDL_GetScancodeFromName(e->key); - SDL_SendKeyboardKey(SDL_PRESSED, scancode); - } - else if ((!strcmp(e->key, "Return")) || (!strcmp(e->key, "KP_Enter"))) { - scancode = SDL_GetScancodeFromName(e->key); - SDL_SendKeyboardKey(SDL_PRESSED, scancode); - } - else if (e->string) { - SDL_SendKeyboardText(e->string); - } - else { - scancode = TranslateKeycode(e->keycode); - SDL_SendKeyboardKey(SDL_PRESSED, scancode); - } - } else { - scancode = TranslateKeycode(e->keycode); - SDL_SendKeyboardKey(SDL_PRESSED, scancode); + scancode = TranslateKeycode(e->keycode); + SDL_SendKeyboardKey(SDL_PRESSED, scancode); + + // Don't care that TEXTINPUT is enabled because SendKeyboardText() handles it. + if (e->string) { + SDL_SendKeyboardText(e->string); } return ECORE_CALLBACK_PASS_ON; -- 2.7.4