diff --git a/changelog.d/chord-clock-light.md b/changelog.d/chord-clock-light.md new file mode 100644 index 000000000..ee188a972 --- /dev/null +++ b/changelog.d/chord-clock-light.md @@ -0,0 +1,2 @@ +Fixed: +The light no longer dips while the Up+Down clock and the sleep screen after it draw; it fades in, holds, and fades out. diff --git a/src/main.cpp b/src/main.cpp index a926cc361..3e19db0de 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3045,7 +3045,8 @@ static void updateFlashDuckLocked() { // Never duck below 2% of full: lower duty shifts the frontlight color. Every duck level below derives from this. const unsigned long minPct = std::max(KNOBS.flashDuckMinPct, 2); if (!flashDuckActive) { - if (!ducking || holdLate || !SETTINGS.frontlightFlashDuck || !Frontlight.isOn() || + // The Up+Down clock is a peek: its two refreshes (clock, sleep screen) would pump the light it just faded in. + if (!ducking || holdLate || wallpaperChordWake || !SETTINGS.frontlightFlashDuck || !Frontlight.isOn() || Frontlight.idleDimPercent() != 100) { return; } @@ -3156,7 +3157,7 @@ static void updateFlashDuckLocked() { // dim or at the floor it does nothing, so don't tick the loop at 10 ms for it. static bool flashDuckPending() { if (flashDuckActive) return true; - if (!SETTINGS.frontlightFlashDuck || !Frontlight.isOn() || Frontlight.idleDimPercent() != 100 || + if (wallpaperChordWake || !SETTINGS.frontlightFlashDuck || !Frontlight.isOn() || Frontlight.idleDimPercent() != 100 || Frontlight.brightness() <= std::max(KNOBS.flashDuckMinPct, 2)) { return false; }