Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d618fcc6 authored by Josep del Río's avatar Josep del Río Committed by Automerger Merge Worker
Browse files

Merge "hasKeycodeLocked() also checks usage codes" am: 8521bfe7 am: c224482a am: 48a44019

parents ecd41c77 48a44019
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ public:
            int32_t* outKeyCode, uint32_t* outFlags) const;
    std::vector<int32_t> findScanCodesForKey(int32_t keyCode) const;
    std::optional<int32_t> findScanCodeForLed(int32_t ledCode) const;
    std::vector<int32_t> findUsageCodesForKey(int32_t keyCode) const;
    std::optional<int32_t> findUsageCodeForLed(int32_t ledCode) const;

    std::optional<AxisInfo> mapAxis(int32_t scanCode) const;
+10 −0
Original line number Diff line number Diff line
@@ -247,6 +247,16 @@ std::vector<int32_t> KeyLayoutMap::findScanCodesForKey(int32_t keyCode) const {
    return scanCodes;
}

std::vector<int32_t> KeyLayoutMap::findUsageCodesForKey(int32_t keyCode) const {
    std::vector<int32_t> usageCodes;
    for (const auto& [usageCode, key] : mKeysByUsageCode) {
        if (keyCode == key.keyCode) {
            usageCodes.push_back(usageCode);
        }
    }
    return usageCodes;
}

std::optional<AxisInfo> KeyLayoutMap::mapAxis(int32_t scanCode) const {
    auto it = mAxes.find(scanCode);
    if (it == mAxes.end()) {
+5 −0
Original line number Diff line number Diff line
@@ -634,6 +634,11 @@ bool EventHub::Device::hasKeycodeLocked(int keycode) const {
        }
    }

    std::vector<int32_t> usageCodes = keyMap.keyLayoutMap->findUsageCodesForKey(keycode);
    if (usageCodes.size() > 0 && mscBitmask.test(MSC_SCAN)) {
        return true;
    }

    return false;
}