From c98f71d4c356d48e8aab5a88a0aed759ecd26b24 Mon Sep 17 00:00:00 2001 From: stefan Date: Fri, 23 Sep 2016 13:49:34 +0100 Subject: [PATCH] Fix Process::setDockIconVisible() may not turn the process into a background-process --- .../juce_gui_basics/native/juce_mac_Windowing.mm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/juce_gui_basics/native/juce_mac_Windowing.mm b/modules/juce_gui_basics/native/juce_mac_Windowing.mm index b392290652..1ed7aea73d 100644 --- a/modules/juce_gui_basics/native/juce_mac_Windowing.mm +++ b/modules/juce_gui_basics/native/juce_mac_Windowing.mm @@ -483,13 +483,15 @@ String SystemClipboard::getTextFromClipboard() void Process::setDockIconVisible (bool isVisible) { - #if defined (MAC_OS_X_VERSION_10_6) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6) - [NSApp setActivationPolicy: isVisible ? NSApplicationActivationPolicyRegular - : NSApplicationActivationPolicyProhibited]; - #else - ignoreUnused (isVisible); - jassertfalse; // sorry, not available in 10.5! - #endif + ProcessSerialNumber psn { 0, kCurrentProcess }; + ProcessApplicationTransformState state = isVisible + ? kProcessTransformToForegroundApplication + : kProcessTransformToUIElementApplication; + + OSStatus err = TransformProcessType (&psn, state); + + jassert (err == 0); + ignoreUnused (err); } bool Desktop::isOSXDarkModeActive()