From bb377c1074924e387b2d9753ce5471d69dfd2701 Mon Sep 17 00:00:00 2001 From: Brayden Zee Date: Sun, 29 Dec 2024 13:25:26 -0500 Subject: [PATCH] fingerprint: add a delay after an unrecognized fingerprint --- src/auth/Fingerprint.cpp | 9 ++++++++- src/config/ConfigManager.cpp | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/auth/Fingerprint.cpp b/src/auth/Fingerprint.cpp index dce78986..cc3eed97 100644 --- a/src/auth/Fingerprint.cpp +++ b/src/auth/Fingerprint.cpp @@ -169,7 +169,14 @@ void CFingerprint::handleVerifyStatus(const std::string& result, bool done) { m_sFailureReason = "Fingerprint auth disabled (too many failed attempts)"; } else { done = false; - startVerify(true); + g_pHyprlock->addTimer( + std::chrono::milliseconds(**(Hyprlang::INT* const*)(g_pConfigManager->getValuePtr("auth:fingerprint:retry_delay"))), + [](std::shared_ptr self, void* data) { + ((CFingerprint*)data)->startVerify(true); + g_pAuth->m_bDisplayFailText = false; + g_pHyprlock->renderAllOutputs(); + }, + this); } break; case MATCH_UNKNOWN_ERROR: diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 5bf277fd..39bad172 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -181,6 +181,7 @@ void CConfigManager::init() { m_config.addConfigValue("auth:fingerprint:enabled", Hyprlang::INT{0}); m_config.addConfigValue("auth:fingerprint:ready_message", Hyprlang::STRING{"(Scan fingerprint to unlock)"}); m_config.addConfigValue("auth:fingerprint:present_message", Hyprlang::STRING{"Scanning fingerprint"}); + m_config.addConfigValue("auth:fingerprint:retry_delay", Hyprlang::INT{250}); m_config.addSpecialCategory("background", Hyprlang::SSpecialCategoryOptions{.key = nullptr, .anonymousKeyBased = true}); m_config.addSpecialConfigValue("background", "monitor", Hyprlang::STRING{""});