From 12bd9c46d75293c61ba1fae693598df1465d1966 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Sun, 10 May 2026 21:44:11 +0200 Subject: [PATCH] Allow short press for X3 --- src/main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 75f25acd..3d65c8f7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -229,7 +229,12 @@ void setup() { // We only want to skip the hold verification (allowing a short press to wake) if the short // press or double press actually have an action assigned, or if the clock screensaver is active. // Otherwise, short presses from sleep should be ignored entirely and return to sleep. - bool allowShortPress = (SETTINGS.useClock != 0) || (SETTINGS.btnShortPower != CrossPointSettings::BTN_DEFAULT) || + // + // X3 always cuts all power during sleep (battery-latch MOSFET, keepClockAlive=false), so any + // wakeup is a full cold boot. By the time verifyPowerButtonWakeup runs the button may already + // be released — hardware design guarantees the press was intentional, so skip hold-verification. + bool allowShortPress = gpio.deviceIsX3() || (SETTINGS.useClock != 0) || + (SETTINGS.btnShortPower != CrossPointSettings::BTN_DEFAULT) || (SETTINGS.btnDoublePower != CrossPointSettings::BTN_DEFAULT); gpio.verifyPowerButtonWakeup(CrossPointSettings::getPowerButtonDuration(), allowShortPress);