diff options
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 7 | ||||
| -rw-r--r-- | src/managers/input/InputManager.cpp | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 2496a0a5..c9b5650a 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -605,7 +605,12 @@ SDispatchResult CKeybindManager::handleKeybinds(const uint32_t modmask, const SP continue; if (device) { - if (k->deviceInclusive ^ k->devices.contains(device->m_hlName)) + bool isTagValid = false; + for (const auto& tag : device->m_deviceTags) { + if (k->devices.contains(tag)) + isTagValid = true; + } + if (k->deviceInclusive ^ (k->devices.contains(device->m_hlName) || isTagValid)) continue; } diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 65a98181..85699b14 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -1167,6 +1167,10 @@ void CInputManager::applyConfigToKeyboard(SP<IKeyboard> pKeyboard) { const auto ENABLED = HASCONFIG && Config::mgr()->deviceConfigExplicitlySet(devname, "enabled") ? Config::mgr()->getDeviceInt(devname, "enabled") : true; const auto ALLOWBINDS = HASCONFIG && Config::mgr()->deviceConfigExplicitlySet(devname, "keybinds") ? Config::mgr()->getDeviceInt(devname, "keybinds") : true; + for (const auto& tagString : CVarList2(Config::mgr()->getDeviceString(devname, "tags"))) { + pKeyboard->m_deviceTags.emplace(std::string_view(tagString)); + } + pKeyboard->m_enabled = ENABLED; pKeyboard->m_resolveBindsBySym = RESOLVEBINDSBYSYM; pKeyboard->m_allowBinds = ALLOWBINDS; @@ -1293,6 +1297,10 @@ void CInputManager::setPointerConfigs() { g_pPointerManager->detachPointer(m); m->m_connected = false; } + + for (const auto tagString : CVarList2(Config::mgr()->getDeviceString(devname, "tags"))) { + m->m_deviceTags.emplace(std::string_view(tagString)); + } } if (Config::mgr()->deviceConfigExplicitlySet(devname, "scroll_factor")) |
