From cf51ab71a25cbb60ebcf13edd4b7413c23264128 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 17 Mar 2022 15:53:45 +0100 Subject: input basics --- src/input/InputManager.cpp | 17 +++++++++++++++++ src/input/InputManager.hpp | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/input/InputManager.cpp create mode 100644 src/input/InputManager.hpp (limited to 'src/input') diff --git a/src/input/InputManager.cpp b/src/input/InputManager.cpp new file mode 100644 index 00000000..3140e22d --- /dev/null +++ b/src/input/InputManager.cpp @@ -0,0 +1,17 @@ +#include "InputManager.hpp" +#include "../Compositor.hpp" + +void CInputManager::onMouseMoved(wlr_event_pointer_motion* e) { + // TODO: sensitivity + + float sensitivity = 0.25f; + + m_vMouseCoords = m_vMouseCoords + Vector2D(e->delta_x * sensitivity, e->delta_y * sensitivity); + + if (m_vMouseCoords.floor() != m_vWLRMouseCoords) { + Vector2D delta = m_vMouseCoords - m_vWLRMouseCoords; + m_vWLRMouseCoords = m_vMouseCoords.floor(); + + wlr_cursor_move(g_pCompositor->m_sWLRCursor, e->device, delta.floor().x, delta.floor().y); + } +} \ No newline at end of file diff --git a/src/input/InputManager.hpp b/src/input/InputManager.hpp new file mode 100644 index 00000000..38ec419a --- /dev/null +++ b/src/input/InputManager.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "../defines.hpp" + +class CInputManager { +public: + + void onMouseMoved(wlr_event_pointer_motion*); + void onMouseButton(int); + +private: + Vector2D m_vMouseCoords = Vector2D(0,0); + Vector2D m_vWLRMouseCoords = Vector2D(0,0); + +}; + +inline std::unique_ptr g_pInputManager; \ No newline at end of file -- cgit v1.2.3