Currently DarkModeSettingListener
is only invoked when run as Standalone. Similarly Desktop::isDarkModeActive
will return the value set at load time instead of current settings. Attached is a patch that allows for hot-swapping dark mode also when run as a AUv3 plug-in.
diff --git a/modules/juce_gui_basics/native/juce_ios_Windowing.mm b/modules/juce_gui_basics/native/juce_ios_Windowing.mm
index 6249e0dec..44a47ec4c 100644
--- a/modules/juce_gui_basics/native/juce_ios_Windowing.mm
+++ b/modules/juce_gui_basics/native/juce_ios_Windowing.mm
@@ -736,7 +736,19 @@ Image juce_createIconForFile (const File&)
{
#if defined (__IPHONE_12_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0
if (@available (iOS 12.0, *))
+ {^M
+ if (ComponentPeer::getNumPeers() > 0)^M
+ {^M
+ auto peer = ComponentPeer::getPeer(0);^M
+ if (peer)^M
+ {^M
+ auto view = (UIView *)peer->getNativeHandle();^M
+ return [[view traitCollection] userInterfaceStyle] == UIUserInterfaceStyleDark;^M
+ }^M
+ }^M
+^M
return [[[UIScreen mainScreen] traitCollection] userInterfaceStyle] == UIUserInterfaceStyleDark;
+ }^M
#endif
return false;