diff --git a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h index fcb9e02fcb..3c32aff0c1 100644 --- a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h +++ b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h @@ -99,3 +99,7 @@ #if (defined(__APPLE_CPP__) || defined(__APPLE_CC__)) && ! defined (JUCE_ObjCExtraSuffix) #error "To avoid objective-C name clashes with other plugins, you need to define the JUCE_ObjCExtraSuffix value as a global definition for your project!" #endif + +#if JucePlugin_Build_LV2 && ! defined (JucePlugin_LV2URI) + #error "You need to define the JucePlugin_LV2URI value!" +#endif diff --git a/modules/juce_events/juce_events.cpp b/modules/juce_events/juce_events.cpp index 15c9337a3b..de42626ae2 100644 --- a/modules/juce_events/juce_events.cpp +++ b/modules/juce_events/juce_events.cpp @@ -56,6 +56,7 @@ #include #include #undef KeyPress + #include #endif //============================================================================== diff --git a/modules/juce_gui_basics/buttons/juce_Button.h b/modules/juce_gui_basics/buttons/juce_Button.h index 07160edb0a..973f9d637d 100644 --- a/modules/juce_gui_basics/buttons/juce_Button.h +++ b/modules/juce_gui_basics/buttons/juce_Button.h @@ -110,7 +110,7 @@ public: void setToggleState (bool shouldBeOn, bool sendChangeNotification); - /** Returns true if the button in 'on'. + /** Returns true if the button is 'on'. By default buttons are 'off' and for simple buttons that you click to perform an action you won't change this. Toggle buttons, however will want to diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index 240d93c496..3feb3cdf00 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -568,12 +568,20 @@ void Component::addToDesktop (int styleWanted, void* nativeWindowToAttachTo) if (peer != nullptr) { + ScopedPointer oldPeerToDelete (peer); + wasFullscreen = peer->isFullScreen(); wasMinimised = peer->isMinimised(); currentConstainer = peer->getConstrainer(); oldNonFullScreenBounds = peer->getNonFullScreenBounds(); - removeFromDesktop(); + flags.hasHeavyweightPeerFlag = false; + Desktop::getInstance().removeDesktopComponent (this); + internalHierarchyChanged(); // give comps a chance to react to the peer change before the old peer is deleted. + + if (safePointer == nullptr) + return; + setTopLeftPosition (topLeft); } diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp index d4c0a87894..4945104390 100644 --- a/modules/juce_gui_basics/juce_gui_basics.cpp +++ b/modules/juce_gui_basics/juce_gui_basics.cpp @@ -97,6 +97,7 @@ #include #include #include + #include #if JUCE_USE_XINERAMA /* If you're trying to use Xinerama, you'll need to install the "libxinerama-dev" package.. */