Make unknown keys map to "unknown" in love.keypressed, at least allowing

you to get the (correct) unicode arg. (issue #337)
This commit is contained in:
Bart van Strien
2012-08-03 15:51:43 +02:00
parent 85a1787ad8
commit 00ee547a1c
+16 -14
View File
@@ -91,22 +91,24 @@ Message *Event::convert(SDL_Event &e)
switch (e.type)
{
case SDL_KEYDOWN:
if (keys.find(e.key.keysym.sym, key) && love::event::Event::keys.find(key, txt))
{
arg1 = new Variant(txt, strlen(txt));
arg2 = new Variant((double) e.key.keysym.unicode);
msg = new Message("keypressed", arg1, arg2);
arg1->release();
arg2->release();
}
if (!keys.find(e.key.keysym.sym, key))
key = love::keyboard::Keyboard::KEY_UNKNOWN;
if (!love::event::Event::keys.find(key, txt))
txt = "unknown";
arg1 = new Variant(txt, strlen(txt));
arg2 = new Variant((double) e.key.keysym.unicode);
msg = new Message("keypressed", arg1, arg2);
arg1->release();
arg2->release();
break;
case SDL_KEYUP:
if (keys.find(e.key.keysym.sym, key) && love::event::Event::keys.find(key, txt))
{
arg1 = new Variant(txt, strlen(txt));
msg = new Message("keyreleased", arg1);
arg1->release();
}
if (!keys.find(e.key.keysym.sym, key))
key = love::keyboard::Keyboard::KEY_UNKNOWN;
if (!love::event::Event::keys.find(key, txt))
txt = "unknown";
arg1 = new Variant(txt, strlen(txt));
msg = new Message("keyreleased", arg1);
arg1->release();
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP: