From c30c23a64b33e208af5aa6913558b65acdb9a14c Mon Sep 17 00:00:00 2001 From: Uladzimir Karpenka Date: Fri, 14 Aug 2026 13:01:42 +0300 Subject: [PATCH] =?UTF-8?q?fix(beacon):=20=D0=B2=D0=B7=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D1=91=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BB=D0=B8=D0=BA=20?= =?UTF-8?q?=D1=81=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BB=D1=8E=D0=B1=D0=BE=D0=BC=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8=D0=B8,=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BC=D1=8B=D1=88=D1=8C?= =?UTF-8?q?=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FBeaconArming гасился только в обработчике клика по спектру. Навёл AUTO из окна лупы — флаг остался взведён, и следующий случайный ЛКМ по панораме утаскивал маяк на пустое место. Те же грабли были для наведения из web и CAT. Снимаем в обработчике rfBeaconLock, как только BeaconDecodeFreqHz стал ненулевым — кто навёл, роли не играет. FSpectrumDirty просим только в этот момент: маркеры и так едут вместе с кадрами, а на стопе спектр статичен, дёргать перерисовку 10 раз в секунду незачем. Сборка ewsdr (--ws=qt6) — ОК. Co-Authored-By: Claude Opus 5 --- MainForm.pas | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/MainForm.pas b/MainForm.pas index 5199b73..59b7512 100644 --- a/MainForm.pas +++ b/MainForm.pas @@ -1661,7 +1661,19 @@ begin PbSpectrum.Invalidate; end; rfBeaconLock: - UpdateBeaconButton; // статус/коррекция QO-100 beacon lock + begin + // Наведение ставит не только клик по спектру: есть AUTO в окне маяка, + // web и CAT. Как только декодер куда-то наведён — снимаем «вооружение», + // иначе следующий случайный ЛКМ по панораме утащил бы маяк на пустое + // место. Перерисовку просим только в этот момент: маркеры и так едут с + // кадрами, а на стопе спектр статичен. + if FBeaconArming and (FController.BeaconDecodeFreqHz > 0) then + begin + FBeaconArming := False; + FSpectrumDirty := True; + end; + UpdateBeaconButton; // статус/коррекция QO-100 beacon lock + end; rfCTun: begin StyleButton(BtnCTun, FController.FCTun);