summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/rune/ui/input.h3
-rw-r--r--ui/input.c5
2 files changed, 4 insertions, 4 deletions
diff --git a/include/rune/ui/input.h b/include/rune/ui/input.h
index dd86b17..c03f8a2 100644
--- a/include/rune/ui/input.h
+++ b/include/rune/ui/input.h
@@ -29,12 +29,11 @@
#define KB_MODE_TEXT 1
RAPI int rune_input_init(struct rune_window *window);
-RAPI void rune_input_quit(void);
RAPI void set_keyboard_mode(int mode);
RAPI int get_keyboard_mode(void);
-RAPI void register_key_hook(int key, void (*func)(void));
+RAPI void register_key_hook(uint8_t scancode, void (*func)(void));
RAPI void rune_input_tick(void);
#endif
diff --git a/ui/input.c b/ui/input.c
index 728e540..e434d46 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -8,6 +8,7 @@ static int keyboard_mode;
static void (*key_hooks[256])(void);
void _key_callback(GLFWwindow *window, int key, int scancode, int action, int mods) {
+ scancode -= 8;
if (action == GLFW_PRESS && key_hooks[scancode] != NULL)
(*key_hooks[scancode])();
}
@@ -31,8 +32,8 @@ int get_keyboard_mode(void) {
return keyboard_mode;
}
-void register_key_hook(int key, void (*func)(void)) {
- key_hooks[key] = func;
+void register_key_hook(uint8_t scancode, void (*func)(void)) {
+ key_hooks[scancode] = func;
}
void rune_input_tick(void) {