mirror of
https://github.com/love2d/love.git
synced 2026-08-20 12:40:20 +02:00
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:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user