summaryrefslogtreecommitdiff
path: root/src/input/InputManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/InputManager.cpp')
-rw-r--r--src/input/InputManager.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/input/InputManager.cpp b/src/input/InputManager.cpp
index b57205e1..e2e88b9e 100644
--- a/src/input/InputManager.cpp
+++ b/src/input/InputManager.cpp
@@ -22,4 +22,36 @@ void CInputManager::onMouseWarp(wlr_event_pointer_motion_absolute* e) {
Vector2D CInputManager::getMouseCoordsInternal() {
return m_vMouseCoords;
+}
+
+void CInputManager::newKeyboard(wlr_input_device* keyboard) {
+ m_dKeyboards.push_back(SKeyboard());
+
+ const auto PNEWKEYBOARD = &m_dKeyboards.back();
+
+ PNEWKEYBOARD->keyboard = keyboard;
+
+ xkb_rule_names rules;
+
+ const auto CONTEXT = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+ const auto KEYMAP = xkb_keymap_new_from_names(CONTEXT, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS);
+
+ wlr_keyboard_set_keymap(keyboard->keyboard, KEYMAP);
+ xkb_keymap_unref(KEYMAP);
+ xkb_context_unref(CONTEXT);
+ wlr_keyboard_set_repeat_info(keyboard->keyboard, 25, 600);
+
+ wl_signal_add(&keyboard->keyboard->events.modifiers, &PNEWKEYBOARD->listen_keyboardMod);
+ wl_signal_add(&keyboard->keyboard->events.key, &PNEWKEYBOARD->listen_keyboardKey);
+ wl_signal_add(&keyboard->events.destroy, &PNEWKEYBOARD->listen_keyboardDestroy);
+
+ wlr_seat_set_keyboard(g_pCompositor->m_sWLRSeat, keyboard);
+}
+
+void CInputManager::onKeyboardKey(wlr_event_keyboard_key* event) {
+
+}
+
+void CInputManager::onKeyboardMod(void* data) {
+
} \ No newline at end of file