From dd9e0da29ef1ae1f5b03602ec752123031691e39 Mon Sep 17 00:00:00 2001 From: Uladzimir Karpenka Date: Tue, 26 May 2026 19:50:55 +0300 Subject: [PATCH] Fix FM step snap: round to nearest instead of truncating down (ClickFreq div StepHz)*StepHz always snapped downward; replaced with ((ClickFreq + StepHz/2) div StepHz)*StepHz so clicks above the midpoint between two steps correctly snap to the higher one. Co-Authored-By: Claude Sonnet 4.6 --- MainForm.pas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MainForm.pas b/MainForm.pas index 275f77e..348b28e 100644 --- a/MainForm.pas +++ b/MainForm.pas @@ -4678,7 +4678,7 @@ begin else StepHz := 100; ClickFreq := Round(FCenterFreq + (PixelX / PanelWidth - 0.5) * FSpanHz); - ClickFreq := (ClickFreq div StepHz) * StepHz; + ClickFreq := ((ClickFreq + StepHz div 2) div StepHz) * StepHz; if FActiveVfo = 0 then ApplyVfoA(ClickFreq) else @@ -4723,7 +4723,7 @@ begin else StepHz := 100; ClickFreq := Round(FreqHz); - ClickFreq := (ClickFreq div StepHz) * StepHz; + ClickFreq := ((ClickFreq + StepHz div 2) div StepHz) * StepHz; if (FCurrentXvtr >= 0) and (FCurrentXvtr < CFG_XVTR_COUNT) and FXvtrSettings.Entries[FCurrentXvtr].Enabled then