From 77ed8989bf5e0aa99f997085941977d7d52f4bd8 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 21 Jan 2018 12:21:17 +0000 Subject: [PATCH] Fix transient window on osx (and fixes build) --- source/modules/dgl/src/Window.cpp | 11 +++++++---- source/utils/CarlaPluginUI.cpp | 7 ++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/source/modules/dgl/src/Window.cpp b/source/modules/dgl/src/Window.cpp index 53f9a29a6..fea2c1eba 100644 --- a/source/modules/dgl/src/Window.cpp +++ b/source/modules/dgl/src/Window.cpp @@ -137,7 +137,8 @@ struct Window::PrivateData { hwndParent = parentImpl->hwnd; SetWindowLongPtr(hwnd, GWLP_HWNDPARENT, (LONG_PTR)hwndParent); #elif defined(DISTRHO_OS_MAC) - [mWindow orderWindow:NSWindowBelow relativeTo:parentImpl->window]; + [parentImpl->window addChildWindow:mWindow + ordered:NSWindowAbove]; #else XSetTransientForHint(xDisplay, xWindow, parentImpl->win); #endif @@ -640,9 +641,11 @@ struct Window::PrivateData { hwndParent = (HWND)winId; SetWindowLongPtr(hwnd, GWLP_HWNDPARENT, (LONG_PTR)winId); #elif defined(DISTRHO_OS_MAC) - NSWindow* const window = [NSApp windowWithWindowNumber:winId]; - DISTRHO_SAFE_ASSERT_RETURN(window != nullptr,); - [mWindow orderWindow:NSWindowBelow relativeTo:window]; + NSWindow* const parentWindow = [NSApp windowWithWindowNumber:winId]; + DISTRHO_SAFE_ASSERT_RETURN(parentWindow != nullptr,); + + [parentWindow addChildWindow:mWindow + ordered:NSWindowAbove]; #else XSetTransientForHint(xDisplay, xWindow, static_cast< ::Window>(winId)); #endif diff --git a/source/utils/CarlaPluginUI.cpp b/source/utils/CarlaPluginUI.cpp index a0e32b522..c8b73d8d4 100644 --- a/source/utils/CarlaPluginUI.cpp +++ b/source/utils/CarlaPluginUI.cpp @@ -555,10 +555,11 @@ public: { CARLA_SAFE_ASSERT_RETURN(fWindow != 0,); - NSWindow* window = [NSApp windowWithWindowNumber:winId]; - CARLA_SAFE_ASSERT_RETURN(window != nullptr,); + NSWindow* const parentWindow = [NSApp windowWithWindowNumber:winId]; + CARLA_SAFE_ASSERT_RETURN(parentWindow != nullptr,); - [fWindow orderWindow:NSWindowBelow relativeTo:window]; + [parentWindow addChildWindow:fWindow + ordered:NSWindowAbove]; } void setChildWindow(void* const winId) override