From 075ade1a6c8d05550def073fd9e07c66e0210d2a Mon Sep 17 00:00:00 2001 From: Erik Date: Tue, 11 Aug 2026 12:29:55 +0200 Subject: [PATCH] =?UTF-8?q?diag(ui):=20#372=20=E2=80=94=20event-scale=20cl?= =?UTF-8?q?ick=20log=20on=20every=20wired=20Gameplay-tab=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first connected gate reported most Gameplay buttons 'did nothing'; two of seven are contract-inert and the other four have dialog/chat effects that can go unnoticed. One line per click at the BindButton chokepoint makes the next gate's log a definitive fired/not-fired record per button — evidence before investigation, per the debugging discipline. App suite green. Co-Authored-By: Claude Fable 5 --- src/AcDream.App/UI/Layout/OptionsPanelController.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/AcDream.App/UI/Layout/OptionsPanelController.cs b/src/AcDream.App/UI/Layout/OptionsPanelController.cs index 7b4b22bd..36cc5981 100644 --- a/src/AcDream.App/UI/Layout/OptionsPanelController.cs +++ b/src/AcDream.App/UI/Layout/OptionsPanelController.cs @@ -273,7 +273,18 @@ public sealed class OptionsPanelController : IRetainedPanelController { if (onClick is null) return; if (layout.FindElement(elementId) is UiButton button) - button.OnClick = onClick; + { + button.OnClick = () => + { + // #372 gate evidence: the user's first connected gate reported + // most Gameplay buttons "did nothing"; two of the seven are + // contract-inert and the other four have dialog/chat effects + // that can go unnoticed. One event-scale line per click makes + // the next gate's log a definitive fired/not-fired record. + Console.WriteLine($"[options] gameplay button 0x{elementId:X8} clicked — handler invoked"); + onClick(); + }; + } else Console.WriteLine( $"[D.2b] OptionsPanelController: Gameplay-tab button 0x{elementId:X8} "