ui(pans): флаг A появляется вместе с первым доп. панадаптером

Доп. панадаптер приходит со своим слайсом и сразу рисует его флаг, а
главный приёмник оставался без флага — [A] показывался только когда слайс
создавали на самом пане 0 (инвариант «панель скрыта ИЛИ есть слайсы B+»).

TPanafallPanel: третье слагаемое инварианта — MainFlagForced, выставляется
хозяином. MainForm.ResizeSpectrumPanels после LayoutPanStack ставит
FPan.MainFlagForced := PanCount > 1 и зовёт UpdateMainFlagVisibility; это
единая точка — добавление/закрытие пана, restore персиста и STOP все идут
через пересчёт раскладки. Сворачивание левой панели (MainFlagPinned) на
это не влияет: пока жив хотя бы один доп. пан, флаг A остаётся.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 12:11:57 +03:00
co-authored by Claude Opus 4.8
parent 6c38777c58
commit 3bdcfa0674
3 changed files with 22 additions and 7 deletions
+8
View File
@@ -2755,6 +2755,14 @@ begin
// Стек панов: регионы по долям, каждый пан раскладывает свой стек
// спектр/линейка/сплиттер/водопад/пан-зум внутри своего региона.
LayoutPanStack(WideH);
// Доп. панадаптер приходит со своим слайсом и сразу показывает его флаг —
// главный приёмник должен быть представлен флагом A с того же момента
// (раньше флаг A появлялся только от слайса, созданного на самом пане 0).
if FPan <> nil then
begin
FPan.MainFlagForced := PanCount > 1;
FPan.UpdateMainFlagVisibility;
end;
PositionSampleRateOverlay;
end;