From d6d58b33d199f0680a288b3f0230f445b0a580e0 Mon Sep 17 00:00:00 2001 From: Luciano Iam Date: Thu, 5 Aug 2021 22:54:58 +0200 Subject: [PATCH] Fix Mac standalone window focus --- dgl/src/ApplicationPrivateData.cpp | 5 +++++ dgl/src/pugl.cpp | 9 +++++++++ dgl/src/pugl.hpp | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/dgl/src/ApplicationPrivateData.cpp b/dgl/src/ApplicationPrivateData.cpp index 71fa6c87..be8490b2 100644 --- a/dgl/src/ApplicationPrivateData.cpp +++ b/dgl/src/ApplicationPrivateData.cpp @@ -64,6 +64,11 @@ Application::PrivateData::PrivateData(const bool standalone) #ifdef HAVE_X11 sofdFileDialogSetup(world); #endif + +#ifdef DISTRHO_OS_MAC + if (standalone) + puglMacOSActivateApp(); +#endif } Application::PrivateData::~PrivateData() diff --git a/dgl/src/pugl.cpp b/dgl/src/pugl.cpp index 26dee438..086d7105 100644 --- a/dgl/src/pugl.cpp +++ b/dgl/src/pugl.cpp @@ -391,6 +391,15 @@ bool puglMacOSFilePanelOpen(PuglView* const view, return true; } + +// -------------------------------------------------------------------------------------------------------------------- +// macOS specific, allow standalone window to gain focus + +void puglMacOSActivateApp() +{ + [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; + [NSApp activateIgnoringOtherApps:YES]; +} #endif #ifdef DISTRHO_OS_WINDOWS diff --git a/dgl/src/pugl.hpp b/dgl/src/pugl.hpp index c69a659e..15833809 100644 --- a/dgl/src/pugl.hpp +++ b/dgl/src/pugl.hpp @@ -90,6 +90,10 @@ puglFallbackOnResize(PuglView* view); // macOS specific, setup file browser dialog typedef void (*openPanelCallback)(PuglView* view, const char* path); bool puglMacOSFilePanelOpen(PuglView* view, const char* startDir, const char* title, uint flags, openPanelCallback callback); + +// macOS specific, allow standalone window to gain focus +PUGL_API void +puglMacOSActivateApp(); #endif #ifdef DISTRHO_OS_WINDOWS