diff options
| author | ArchSav <96357545+ArchSav@users.noreply.github.com> | 2026-03-14 00:48:01 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-13 08:48:01 -0500 |
| commit | 24a95621e5118e39e1a6e05b17ef89f4ec2c8c01 (patch) | |
| tree | a37133cd549fb7107ebbaa5bf60fafd52a5bdd77 /src/managers/input | |
| parent | e8684034525829d58054c32da914d1713398fbb8 (diff) | |
input: add device specific binds (#13073)
Adds support for device-specific binds
Diffstat (limited to 'src/managers/input')
| -rw-r--r-- | src/managers/input/InputManager.cpp | 10 | ||||
| -rw-r--r-- | src/managers/input/InputManager.hpp | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 9195536f..d88b29cd 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -647,7 +647,7 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse, st g_pSeatManager->sendPointerMotion(time, surfaceLocal); } -void CInputManager::onMouseButton(IPointer::SButtonEvent e) { +void CInputManager::onMouseButton(IPointer::SButtonEvent e, SP<IPointer> mouse) { Event::SCallbackInfo info; Event::bus()->m_events.input.mouse.button.emit(e, info); if (info.cancelled) @@ -667,7 +667,7 @@ void CInputManager::onMouseButton(IPointer::SButtonEvent e) { } switch (m_clickBehavior) { - case CLICKMODE_DEFAULT: processMouseDownNormal(e); break; + case CLICKMODE_DEFAULT: processMouseDownNormal(e, mouse); break; case CLICKMODE_KILL: processMouseDownKill(e); break; default: break; } @@ -755,11 +755,11 @@ void CInputManager::setClickMode(eClickBehaviorMode mode) { } } -void CInputManager::processMouseDownNormal(const IPointer::SButtonEvent& e) { +void CInputManager::processMouseDownNormal(const IPointer::SButtonEvent& e, SP<IPointer> mouse) { // notify the keybind manager static auto PPASSMOUSE = CConfigValue<Hyprlang::INT>("binds:pass_mouse_when_bound"); - const auto PASS = g_pKeybindManager->onMouseEvent(e); + const auto PASS = g_pKeybindManager->onMouseEvent(e, mouse); static auto PFOLLOWMOUSE = CConfigValue<Hyprlang::INT>("input:follow_mouse"); static auto PRESIZEONBORDER = CConfigValue<Hyprlang::INT>("general:resize_on_border"); static auto PBORDERSIZE = CConfigValue<Hyprlang::INT>("general:border_size"); @@ -884,7 +884,7 @@ void CInputManager::onMouseWheel(IPointer::SAxisEvent e, SP<IPointer> pointer) { if (e.mouse) recheckMouseWarpOnMouseInput(); - bool passEvent = g_pKeybindManager->onAxisEvent(e); + bool passEvent = g_pKeybindManager->onAxisEvent(e, pointer); if (!passEvent) return; diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp index ca235a23..0727b7b1 100644 --- a/src/managers/input/InputManager.hpp +++ b/src/managers/input/InputManager.hpp @@ -89,7 +89,7 @@ class CInputManager { void onMouseMoved(IPointer::SMotionEvent); void onMouseWarp(IPointer::SMotionAbsoluteEvent); - void onMouseButton(IPointer::SButtonEvent); + void onMouseButton(IPointer::SButtonEvent, SP<IPointer>); void onMouseWheel(IPointer::SAxisEvent, SP<IPointer> pointer = nullptr); void onPointerFrame(); void onKeyboardKey(const IKeyboard::SKeyEvent&, SP<IKeyboard>); @@ -233,7 +233,7 @@ class CInputManager { void setupKeyboard(SP<IKeyboard> keeb); void setupMouse(SP<IPointer> mauz); - void processMouseDownNormal(const IPointer::SButtonEvent& e); + void processMouseDownNormal(const IPointer::SButtonEvent& e, SP<IPointer>); void processMouseDownKill(const IPointer::SButtonEvent& e); bool cursorImageUnlocked(); |
