Browse Source

[OSX] NSWindow open at position specified by user.

pull/8154/head
Dan Walmsley 4 years ago
parent
commit
7e95fd8c4f
  1. 14
      native/Avalonia.Native/src/OSX/WindowBaseImpl.mm

14
native/Avalonia.Native/src/OSX/WindowBaseImpl.mm

@ -30,8 +30,8 @@ WindowBaseImpl::WindowBaseImpl(IAvnWindowBaseEvents *events, IAvnGlContext *gl)
View = [[AvnView alloc] initWithParent:this];
StandardContainer = [[AutoFitContentView new] initWithContent:View];
lastPositionSet.X = 100;
lastPositionSet.Y = 100;
lastPositionSet.X = -1;
lastPositionSet.Y = -1;
lastSize = NSSize { 100, 100 };
lastMaxSize = NSSize { CGFLOAT_MAX, CGFLOAT_MAX};
lastMinSize = NSSize { 0, 0 };
@ -92,6 +92,11 @@ HRESULT WindowBaseImpl::Show(bool activate, bool isDialog) {
CreateNSWindow(isDialog);
InitialiseNSWindow();
if(lastPositionSet.X >= 0 && lastPositionSet.Y >= 0)
{
SetPosition(lastPositionSet);
}
UpdateStyle();
[Window setTitle:_lastTitle];
@ -370,7 +375,10 @@ HRESULT WindowBaseImpl::SetPosition(AvnPoint point) {
@autoreleasepool {
lastPositionSet = point;
[Window setFrameTopLeftPoint:ToNSPoint(ConvertPointY(point))];
if(Window != nullptr) {
[Window setFrameTopLeftPoint:ToNSPoint(ConvertPointY(point))];
}
return S_OK;
}

Loading…
Cancel
Save