Index: game-gui-glfw.cpp
===================================================================
--- game-gui-glfw.cpp	(revision 0ae182faafd139f2caf1ecbd31d42c7d41360c54)
+++ game-gui-glfw.cpp	(revision 5a232772bc90d0e1c1c036fc2cadf724cf049bab)
@@ -147,5 +147,5 @@
 void glfw_key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) {
    UIEvent e;
-   e.type = UI_EVENT_KEY;
+   e.type = action == GLFW_RELEASE ? UI_EVENT_KEYUP ? UI_EVENT_KEYDOWN;
    e.key.keycode = key;
 
Index: game-gui-sdl.cpp
===================================================================
--- game-gui-sdl.cpp	(revision 0ae182faafd139f2caf1ecbd31d42c7d41360c54)
+++ game-gui-sdl.cpp	(revision 5a232772bc90d0e1c1c036fc2cadf724cf049bab)
@@ -101,7 +101,10 @@
             }
             break;
+         case SDL_KEYDOWN:
+            event->type = UI_EVENT_KEYDOWN;
+            event->key.keycode = e.key.keysym.scancode;
+            break;
          case SDL_KEYUP:
-         case SDL_KEYDOWN:
-            event->type = UI_EVENT_KEY;
+            event->type = UI_EVENT_KEYUP;
             event->key.keycode = e.key.keysym.scancode;
             break;
Index: game-gui.hpp
===================================================================
--- game-gui.hpp	(revision 0ae182faafd139f2caf1ecbd31d42c7d41360c54)
+++ game-gui.hpp	(revision 5a232772bc90d0e1c1c036fc2cadf724cf049bab)
@@ -15,5 +15,6 @@
    UI_EVENT_WINDOW,
    UI_EVENT_WINDOWRESIZE,
-   UI_EVENT_KEY,
+   UI_EVENT_KEYDOWN,
+   UI_EVENT_KEYUP,
    UI_EVENT_MOUSEBUTTONDOWN,
    UI_EVENT_MOUSEBUTTONUP,
Index: opengl-game.cpp
===================================================================
--- opengl-game.cpp	(revision 0ae182faafd139f2caf1ecbd31d42c7d41360c54)
+++ opengl-game.cpp	(revision 5a232772bc90d0e1c1c036fc2cadf724cf049bab)
@@ -172,5 +172,5 @@
                quit = true;
                break;
-            case UI_EVENT_KEY:
+            case UI_EVENT_KEYDOWN:
                if (e.key.keycode == GLFW_KEY_ESCAPE) {
                   quit = true;
