From b9bbd6ff0f27ef8c9071356e3cdcaec0bd54a925 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 17 May 2022 17:45:02 +0100 Subject: [PATCH] Revert "remove redundant api GetFrameSize." This reverts commit 05e6c9cfd9ae784ba96e64252e3e52fe374e8381. --- native/Avalonia.Native/src/OSX/WindowBaseImpl.h | 2 ++ .../Avalonia.Native/src/OSX/WindowBaseImpl.mm | 17 ++++++++++++++++- src/Avalonia.Native/avn.idl | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/native/Avalonia.Native/src/OSX/WindowBaseImpl.h b/native/Avalonia.Native/src/OSX/WindowBaseImpl.h index 379bb227a8..eff13bcb23 100644 --- a/native/Avalonia.Native/src/OSX/WindowBaseImpl.h +++ b/native/Avalonia.Native/src/OSX/WindowBaseImpl.h @@ -72,6 +72,8 @@ BEGIN_INTERFACE_MAP() virtual HRESULT GetClientSize(AvnSize *ret) override; + virtual HRESULT GetFrameSize(AvnSize *ret) override; + virtual HRESULT GetScaling(double *ret) override; virtual HRESULT SetMinMaxSize(AvnSize minSize, AvnSize maxSize) override; diff --git a/native/Avalonia.Native/src/OSX/WindowBaseImpl.mm b/native/Avalonia.Native/src/OSX/WindowBaseImpl.mm index f27aa01eb7..db5eb54e3f 100644 --- a/native/Avalonia.Native/src/OSX/WindowBaseImpl.mm +++ b/native/Avalonia.Native/src/OSX/WindowBaseImpl.mm @@ -191,7 +191,22 @@ HRESULT WindowBaseImpl::GetClientSize(AvnSize *ret) { if (ret == nullptr) return E_POINTER; - auto frame = [View.frame]; + auto frame = [View frame]; + ret->Width = frame.size.width; + ret->Height = frame.size.height; + + return S_OK; + } +} + +HRESULT WindowBaseImpl::GetFrameSize(AvnSize *ret) { + START_COM_CALL; + + @autoreleasepool { + if (ret == nullptr) + return E_POINTER; + + auto frame = [Window frame]; ret->Width = frame.size.width; ret->Height = frame.size.height; diff --git a/src/Avalonia.Native/avn.idl b/src/Avalonia.Native/avn.idl index a28bd06cd0..d6ef0f8918 100644 --- a/src/Avalonia.Native/avn.idl +++ b/src/Avalonia.Native/avn.idl @@ -504,6 +504,7 @@ interface IAvnWindowBase : IUnknown HRESULT Close(); HRESULT Activate(); HRESULT GetClientSize(AvnSize*ret); + HRESULT GetFrameSize(AvnSize*ret); HRESULT GetScaling(double*ret); HRESULT SetMinMaxSize(AvnSize minSize, AvnSize maxSize); HRESULT Resize(double width, double height, AvnPlatformResizeReason reason);