From 0203586cdcd96c200c6375d6e8e1f2ab601efbc0 Mon Sep 17 00:00:00 2001 From: Armel FAUVEAU Date: Sun, 2 Aug 2026 17:34:01 +0200 Subject: [PATCH] Fix RX mode restore after scan transitions (Issue #480) --- App/app/action.c | 6 ++++++ App/app/main.c | 6 ++++++ App/ui/main.c | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/App/app/action.c b/App/app/action.c index 22f64b76..27186e6d 100644 --- a/App/app/action.c +++ b/App/app/action.c @@ -425,6 +425,12 @@ void ACTION_FM(void) gMonitor = false; + if (gScanStateDir != SCAN_OFF) { + // Stop the channel/frequency scan before switching to the FM radio. + gScanKeepResult = false; + CHFRSCANNER_Stop(); + } + RADIO_SelectVfos(); RADIO_SetupRegisters(true); diff --git a/App/app/main.c b/App/app/main.c index 2ef9adc1..1550de58 100644 --- a/App/app/main.c +++ b/App/app/main.c @@ -924,6 +924,12 @@ static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld) return; } #endif + if (gScanStateDir != SCAN_OFF) { + // Stop the channel/frequency scan before saving the RX mode for the CTCSS/DCS scan. + gScanKeepResult = false; + CHFRSCANNER_Stop(); + } + // scan the CTCSS/DCS code gBackup_CROSS_BAND_RX_TX = gEeprom.CROSS_BAND_RX_TX; gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_OFF; diff --git a/App/ui/main.c b/App/ui/main.c index a6fe990e..66b1204c 100644 --- a/App/ui/main.c +++ b/App/ui/main.c @@ -1581,7 +1581,11 @@ void UI_DisplayMain(void) } } else { - if(RxOnVfofrequency == frequency && !isMainOnly()) { + if(RxOnVfofrequency == frequency && !isMainOnly() +#if defined(ENABLE_FEAT_F4HWN_SCAN_FASTER) && defined(ENABLE_FEAT_F4HWN_SCAN_RSSI) + && !CHFRSCANNER_HasScanRssiSparkline() +#endif + ) { //UI_PrintStringSmallNormal(">>", 8, 0, line); //memcpy(p_line0 + 14, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); GUI_DisplaySmallest(">>", 8, RxLine == 0 ? 1 : 33, false, true);