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

Commit 8521bfe7 authored by Josep del Río's avatar Josep del Río Committed by Gerrit Code Review
Browse files

Merge "hasKeycodeLocked() also checks usage codes"

parents ba9df0b0 aadf8d5c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,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
@@ -230,6 +230,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
@@ -461,6 +461,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;
}