summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/KeybindManager.cpp7
-rw-r--r--src/managers/input/InputManager.cpp8
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"))