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:
parent
3f3cfdac30
commit
06016014bc
16 changed files with 578 additions and 27 deletions
|
|
@ -155,8 +155,15 @@ public sealed class RetailWindowManager : IDisposable
|
|||
var frame = handle.OuterFrame;
|
||||
if (!frame.ResizeX) width = frame.Width;
|
||||
if (!frame.ResizeY) height = frame.Height;
|
||||
width = Math.Clamp(width, frame.MinWidth, frame.MaxWidth);
|
||||
height = Math.Clamp(height, frame.MinHeight, frame.MaxHeight);
|
||||
float maxWidth = frame.MaxWidth;
|
||||
float maxHeight = frame.MaxHeight;
|
||||
if (frame.ConstrainResizeToParent && frame.Parent is { } parent)
|
||||
{
|
||||
maxWidth = MathF.Min(maxWidth, parent.Width - frame.Left);
|
||||
maxHeight = MathF.Min(maxHeight, parent.Height - frame.Top);
|
||||
}
|
||||
width = Math.Clamp(width, frame.MinWidth, MathF.Max(frame.MinWidth, maxWidth));
|
||||
height = Math.Clamp(height, frame.MinHeight, MathF.Max(frame.MinHeight, maxHeight));
|
||||
if (frame.Width == width && frame.Height == height) return true;
|
||||
frame.Width = width;
|
||||
frame.Height = height;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue