From 06807324d022da8a5031991e5d6082440e22d2c5 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Fri, 17 Dec 2021 13:09:27 +0000 Subject: [PATCH] [OSX] fix resize calls before window shown. --- native/Avalonia.Native/src/OSX/window.mm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/window.mm b/native/Avalonia.Native/src/OSX/window.mm index f5253fbef2..5d697cc0ec 100644 --- a/native/Avalonia.Native/src/OSX/window.mm +++ b/native/Avalonia.Native/src/OSX/window.mm @@ -27,6 +27,7 @@ public: AvnPoint lastPositionSet; NSString* _lastTitle; IAvnMenu* _mainMenu; + NSSize _lastSize; bool _shown; bool _inResize; @@ -35,6 +36,7 @@ public: { _shown = false; _inResize = false; + _lastSize = NSSize { 0, 0 }; _mainMenu = nullptr; BaseEvents = events; _glContext = gl; @@ -226,9 +228,17 @@ public: if(ret == nullptr) return E_POINTER; - auto frame = [View frame]; - ret->Width = frame.size.width; - ret->Height = frame.size.height; + if(!_shown) + { + ret->Width = _lastSize.width; + ret->Height = _lastSize.height; + } + else + { + auto frame = [View frame]; + ret->Width = frame.size.width; + ret->Height = frame.size.height; + } return S_OK; } @@ -323,6 +333,8 @@ public: @try { + _lastSize = NSSize{x,y}; + if(!_shown) { BaseEvents->Resized(AvnSize{x,y}, reason);