From 24a95621e5118e39e1a6e05b17ef89f4ec2c8c01 Mon Sep 17 00:00:00 2001 From: ArchSav <96357545+ArchSav@users.noreply.github.com> Date: Sat, 14 Mar 2026 00:48:01 +1100 Subject: input: add device specific binds (#13073) Adds support for device-specific binds --- src/managers/input/InputManager.cpp | 10 +++++----- src/managers/input/InputManager.hpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/managers/input') 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 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 mouse) { // notify the keybind manager static auto PPASSMOUSE = CConfigValue("binds:pass_mouse_when_bound"); - const auto PASS = g_pKeybindManager->onMouseEvent(e); + const auto PASS = g_pKeybindManager->onMouseEvent(e, mouse); static auto PFOLLOWMOUSE = CConfigValue("input:follow_mouse"); static auto PRESIZEONBORDER = CConfigValue("general:resize_on_border"); static auto PBORDERSIZE = CConfigValue("general:border_size"); @@ -884,7 +884,7 @@ void CInputManager::onMouseWheel(IPointer::SAxisEvent e, SP 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); void onMouseWheel(IPointer::SAxisEvent, SP pointer = nullptr); void onPointerFrame(); void onKeyboardKey(const IKeyboard::SKeyEvent&, SP); @@ -233,7 +233,7 @@ class CInputManager { void setupKeyboard(SP keeb); void setupMouse(SP mauz); - void processMouseDownNormal(const IPointer::SButtonEvent& e); + void processMouseDownNormal(const IPointer::SButtonEvent& e, SP); void processMouseDownKill(const IPointer::SButtonEvent& e); bool cursorImageUnlocked(); -- cgit v1.2.3