fix(ui): port retail window control feedback

Map synthetic move and resize affordances to the exact DAT cursors, make chat top chrome movable, and replace stale primary-panel height caps with a dynamic screen-edge constraint. This keeps the retained wrapper adaptation aligned with retail Dragbar/Resizebar behavior.
This commit is contained in:
Erik 2026-07-17 09:40:08 +02:00
parent 3f3cfdac30
commit 06016014bc
16 changed files with 578 additions and 27 deletions

View file

@ -118,6 +118,30 @@ public sealed class RetailWindowManagerTests
Assert.Equal(1, resized);
}
[Fact]
public void ProgrammaticResize_ConstrainedToParent_UsesCurrentWindowPosition()
{
var root = new UiRoot { Width = 800, Height = 600 };
var frame = new UiPanel
{
Left = 40,
Top = 125,
Width = 300,
Height = 200,
ResizeX = false,
ResizeY = true,
ConstrainResizeToParent = true,
MinHeight = 100,
};
root.AddChild(frame);
RetailWindowHandle handle = root.RegisterWindow("main-panel", frame);
Assert.True(handle.ResizeTo(frame.Width, 2_000f));
Assert.Equal(475f, frame.Height);
Assert.Equal(root.Height, frame.Top + frame.Height);
}
[Fact]
public void FocusAndCaptureTransitions_AreScopedToOwningHandle()
{