Fixing SDL char input.

This commit is contained in:
Dario Manesku 2015-05-03 15:52:12 +02:00
parent 088bd06b04
commit 6efb223b49

View file

@ -450,22 +450,7 @@ namespace entry
{
uint8_t modifiers = translateKeyModifiers(kev.keysym.mod);
Key::Enum key = translateKey(kev.keysym.scancode);
const uint8_t shiftMask = Modifier::LeftShift|Modifier::RightShift;
const bool nonShiftModifiers = (0 != (modifiers&(~shiftMask) ) );
const bool isCharPressed = (Key::Key0 <= key && key <= Key::KeyZ) || (Key::Esc <= key && key <= Key::Minus);
const bool isText = isCharPressed && !nonShiftModifiers;
if (isText)
{
uint8_t pressedChar[4];
pressedChar[0] = keyToAscii(key, modifiers);
m_eventQueue.postCharEvent(handle, 1, pressedChar);
}
else
{
m_eventQueue.postKeyEvent(handle, key, modifiers, kev.state == SDL_PRESSED);
}
m_eventQueue.postKeyEvent(handle, key, modifiers, kev.state == SDL_PRESSED);
}
}
break;