From 47404534d0cf94b969daee5e0e4dc20c65c35fb2 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 9 Jun 2022 12:46:55 +0200 Subject: added tablet v2 support (alpha alpha) --- src/managers/input/InputManager.hpp | 63 +++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/managers/input/InputManager.hpp (limited to 'src/managers/input/InputManager.hpp') diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp new file mode 100644 index 00000000..e83a1e34 --- /dev/null +++ b/src/managers/input/InputManager.hpp @@ -0,0 +1,63 @@ +#pragma once + +#include "../../defines.hpp" +#include +#include "../../helpers/WLClasses.hpp" +#include "../../Window.hpp" + +class CInputManager { +public: + + void onMouseMoved(wlr_pointer_motion_event*); + void onMouseWarp(wlr_pointer_motion_absolute_event*); + void onMouseButton(wlr_pointer_button_event*); + void onKeyboardKey(wlr_keyboard_key_event*, SKeyboard*); + void onKeyboardMod(void*, SKeyboard*); + + void newKeyboard(wlr_input_device*); + void newMouse(wlr_input_device*); + void destroyKeyboard(SKeyboard*); + void destroyMouse(wlr_input_device*); + + void constrainMouse(SMouse*, wlr_pointer_constraint_v1*); + void recheckConstraint(SMouse*); + + Vector2D getMouseCoordsInternal(); + void refocus(); + + void setKeyboardLayout(); + + void updateDragIcon(); + void updateCapabilities(wlr_input_device*); + + + // for dragging floating windows + CWindow* currentlyDraggedWindow = nullptr; + int dragButton = -1; + + SDrag m_sDrag; + + std::list m_lConstraints; + std::list m_lKeyboards; + std::list m_lMice; + + // tablets + std::list m_lTablets; + std::list m_lTabletTools; + std::list m_lTabletPads; + + void newTabletTool(wlr_input_device*); + void newTabletPad(wlr_input_device*); + + SKeyboard* m_pActiveKeyboard = nullptr; + + private: + + uint32_t m_uiCapabilities = 0; + + void mouseMoveUnified(uint32_t, bool refocus = false); + + STabletTool* ensureTabletToolPresent(STablet*, wlr_tablet_tool*); +}; + +inline std::unique_ptr g_pInputManager; \ No newline at end of file -- cgit v1.2.3 From 6317f64ba0eb304de47bf3f5aa490d76ea0c4384 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 9 Jun 2022 18:09:09 +0200 Subject: set proximity in tablets --- src/managers/input/InputManager.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/managers/input/InputManager.hpp') diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp index e83a1e34..a1bc8db4 100644 --- a/src/managers/input/InputManager.hpp +++ b/src/managers/input/InputManager.hpp @@ -48,6 +48,7 @@ public: void newTabletTool(wlr_input_device*); void newTabletPad(wlr_input_device*); + void focusTablet(STablet*, wlr_tablet_tool*, bool motion = false); SKeyboard* m_pActiveKeyboard = nullptr; -- cgit v1.2.3 From 09b130374df035188b34a36e55d6fdda935c7df8 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 9 Jun 2022 19:38:39 +0200 Subject: unfocus tablets --- src/managers/input/InputManager.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/managers/input/InputManager.hpp') diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp index a1bc8db4..1cd99658 100644 --- a/src/managers/input/InputManager.hpp +++ b/src/managers/input/InputManager.hpp @@ -58,7 +58,9 @@ public: void mouseMoveUnified(uint32_t, bool refocus = false); - STabletTool* ensureTabletToolPresent(STablet*, wlr_tablet_tool*); + STabletTool* ensureTabletToolPresent(wlr_tablet_tool*); + + void unfocusAllTablets(); }; inline std::unique_ptr g_pInputManager; \ No newline at end of file -- cgit v1.2.3