From dd5bad1dfe3bd167a812e40326b1a259950a4045 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 18 Jan 2022 16:51:03 +0100 Subject: [PATCH] Add window resize handling on Mac --- Source/Engine/Platform/Mac/MacWindow.cpp | 17 +++++++++++++++++ Source/Engine/Platform/Mac/MacWindow.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/Source/Engine/Platform/Mac/MacWindow.cpp b/Source/Engine/Platform/Mac/MacWindow.cpp index e602b1327..d1eb7773a 100644 --- a/Source/Engine/Platform/Mac/MacWindow.cpp +++ b/Source/Engine/Platform/Mac/MacWindow.cpp @@ -181,6 +181,13 @@ Vector2 GetMousePosition(MacWindow* window, NSEvent* event) Window->Close(ClosingReason::User); } +- (void)windowDidResize:(NSNotification*)notification +{ + NSView* view = [self contentView]; + NSRect contextRect = [view frame]; + Window->CheckForResize((float)contextRect.size.width, (float)contextRect.size.height); +} + - (void)setWindow:(MacWindow*)window { Window = window; @@ -466,6 +473,16 @@ MacWindow::~MacWindow() _window = nullptr; } +void MacWindow::CheckForResize(float width, float height) +{ + const Vector2 clientSize(width, height); + if (clientSize != _clientSize) + { + _clientSize = clientSize; + OnResize(width, height); + } +} + void* MacWindow::GetNativePtr() const { return _window; diff --git a/Source/Engine/Platform/Mac/MacWindow.h b/Source/Engine/Platform/Mac/MacWindow.h index 4a7866ac7..0693a8b5a 100644 --- a/Source/Engine/Platform/Mac/MacWindow.h +++ b/Source/Engine/Platform/Mac/MacWindow.h @@ -22,6 +22,8 @@ public: MacWindow(const CreateWindowSettings& settings); ~MacWindow(); + void CheckForResize(float width, float height); + public: // [Window]