diff --git a/src/common/JoyMap.cxx b/src/common/JoyMap.cxx index 46012e845..29825ecbf 100644 --- a/src/common/JoyMap.cxx +++ b/src/common/JoyMap.cxx @@ -218,7 +218,7 @@ json JoyMap::saveMapping(const EventMode mode) const json eventMappings = json::array(); for (const auto& [_mapping, _event]: sortedMap) { - if (_mapping.mode != mode) continue; + if(_mapping.mode != mode || _event == Event::NoType) continue; json eventMapping = json::object(); @@ -255,6 +255,10 @@ int JoyMap::loadMapping(const json& eventMappings, const EventMode mode) JoyHatDir hatDirection = eventMapping.contains("hat") ? eventMapping.at("hatDirection").get() : JoyHatDir::CENTER; try { + // avoid blocking mappings for NoType events + if(eventMapping.at("event").get() == Event::NoType) + continue; + add( eventMapping.at("event").get(), mode, diff --git a/src/common/KeyMap.cxx b/src/common/KeyMap.cxx index 70298e21d..fc04de670 100644 --- a/src/common/KeyMap.cxx +++ b/src/common/KeyMap.cxx @@ -241,7 +241,7 @@ json KeyMap::saveMapping(const EventMode mode) const json mappings = json::array(); for (const auto& [_mapping, _event]: sortedMap) { - if (_mapping.mode != mode) continue; + if (_mapping.mode != mode || _event == Event::NoType) continue; json mapping = json::object(); @@ -264,6 +264,10 @@ int KeyMap::loadMapping(const json& mappings, const EventMode mode) { for(const json& mapping : mappings) { try { + // avoid blocking mappings for NoType events + if(mapping.at("event").get() == Event::NoType) + continue; + add( mapping.at("event").get(), mode,