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) switch (e.type)
{ {
case SDL_KEYDOWN: case SDL_KEYDOWN:
if (keys.find(e.key.keysym.sym, key) && love::event::Event::keys.find(key, txt)) if (!keys.find(e.key.keysym.sym, key))
{ key = love::keyboard::Keyboard::KEY_UNKNOWN;
arg1 = new Variant(txt, strlen(txt)); if (!love::event::Event::keys.find(key, txt))
arg2 = new Variant((double) e.key.keysym.unicode); txt = "unknown";
msg = new Message("keypressed", arg1, arg2); arg1 = new Variant(txt, strlen(txt));
arg1->release(); arg2 = new Variant((double) e.key.keysym.unicode);
arg2->release(); msg = new Message("keypressed", arg1, arg2);
} arg1->release();
arg2->release();
break; break;
case SDL_KEYUP: case SDL_KEYUP:
if (keys.find(e.key.keysym.sym, key) && love::event::Event::keys.find(key, txt)) if (!keys.find(e.key.keysym.sym, key))
{ key = love::keyboard::Keyboard::KEY_UNKNOWN;
arg1 = new Variant(txt, strlen(txt)); if (!love::event::Event::keys.find(key, txt))
msg = new Message("keyreleased", arg1); txt = "unknown";
arg1->release(); arg1 = new Variant(txt, strlen(txt));
} msg = new Message("keyreleased", arg1);
arg1->release();
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONUP: