diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index 0aeff94be..4647c0f57 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -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: