Skip to content

Commit

Permalink
Fixed bug 3545 - SDL_EVDEV_do_text_input() may be too eager to find e…
Browse files Browse the repository at this point in the history
…rror cases

Rob

I've ran into an issue where I successfully receive SDL_KEY[UP,DOWN] events but not SDL_TEXTINPUT or SDL_TEXTEDITING.  In my case the code in SDL_EVDEV_do_text_input() is returning early (on error) prior to calling SDL_SendKeyboardText().  I'm running on the RaspberryPi 3, without X11.

In SDL_EVDEV_do_text_input() there is a condition to check keysyms with a type value below 0xf0, then subtract 0xf0 from type.  Without understanding the purpose of this code, I disabled it, recompiled, and I'm getting correct SDL_TEXTINPUT events.  I'm going to guess that my hack/fix is going to be problematic in some other environment, but after some initial testing it looks like everything is running fine in my setup.
  • Loading branch information
slouken committed Jan 9, 2017
1 parent 7b66295 commit 4929270
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/core/linux/SDL_evdev.c
Expand Up @@ -289,6 +289,12 @@ static void SDL_EVDEV_do_text_input(unsigned short keycode)
return;
}

if (kbe.kb_value == K_HOLE || kbe.kb_value == K_NOSUCHMAP) {
return;
}

kbe.kb_value ^= 0xf000;

type = KTYP(kbe.kb_value);

if (type < 0xf0) {
Expand Down

0 comments on commit 4929270

Please sign in to comment.