diff --git a/src/AcDream.App/Rendering/GameWindow.cs b/src/AcDream.App/Rendering/GameWindow.cs index 1eaf9497..bba630e7 100644 --- a/src/AcDream.App/Rendering/GameWindow.cs +++ b/src/AcDream.App/Rendering/GameWindow.cs @@ -2062,8 +2062,13 @@ public sealed class GameWindow : IDisposable // not reflow. (Width is fixed so the horizontal anchors are inert but harmless.) toolbarRoot.Anchors = AcDream.App.UI.AnchorEdges.Left | AcDream.App.UI.AnchorEdges.Top | AcDream.App.UI.AnchorEdges.Right; - // The frame is the draggable window; the content itself is not. - toolbarRoot.ClickThrough = false; + // The frame is the draggable window; the content itself is not. ClickThrough so the + // content panel never CLAIMS a hit — its behavioral children (slots, indicators) are + // hit children-first, and its empty areas fall through to the frame (move). Critically, + // when collapsed the row-2 band is hidden, so below the collapsed frame the content has + // no visible/hit children and ClickThrough lets clicks fall through (no phantom + // window-drag from where row 2 used to be). Same pattern as the chat content panel. + toolbarRoot.ClickThrough = true; toolbarRoot.Draggable = false; toolbarRoot.Resizable = false; toolbarFrame.AddChild(toolbarRoot); @@ -2071,10 +2076,16 @@ public sealed class GameWindow : IDisposable // Collapse-to-one-row: the frame's bottom edge snaps between a one-row (row 2 hidden) // and two-row height. CollapsedHeight is computed from the layout (just above row 2), // so there's no magic constant. Bottom-edge only; default expanded. + // The full row-2 band (all at content-y 90, toolbar dump 0x21000016): a 6px left + // edge-piece (0x100006B6) + the 9 slots (0x100006B7..BF) + an 8px right edge-piece + // (0x100006C0). Hide ALL 11 when collapsed — hiding only the 9 slots leaves the two + // edge-pieces drawing as black pillars below the bar. uint[] row2Ids = { + 0x100006B6u, 0x100006B7u, 0x100006B8u, 0x100006B9u, 0x100006BAu, 0x100006BBu, 0x100006BCu, 0x100006BDu, 0x100006BEu, 0x100006BFu, + 0x100006C0u, }; var toolbarRow2 = new System.Collections.Generic.List(); float minRow2Top = float.MaxValue;