diff --git a/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp index fbfad6cf85..d6a4d42734 100644 --- a/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp @@ -572,29 +572,15 @@ private: // If possible, try to keep platform-specific handing restricted to the implementation of // ViewComponent. Keep the interface of ViewComponent consistent on all platforms. #if JUCE_LINUX || JUCE_BSD - struct InnerHolder - { - struct Inner final : public XEmbedComponent - { - Inner() : XEmbedComponent (true, true) - { - setOpaque (true); - setVisible (true); - addToDesktop (0); - } - }; - - Inner inner; - }; - - struct ViewComponent final : public InnerHolder, - public XEmbedComponent + struct ViewComponent final : public XEmbedComponent { explicit ViewComponent (PhysicalResizeListener& l) - : XEmbedComponent ((unsigned long) inner.getPeer()->getNativeHandle(), true, false), - listener (inner, l) + : XEmbedComponent (true, false), + listener (*this, l) { setOpaque (true); + + X11Symbols::getInstance()->xSync (XWindowSystem::getInstance()->getDisplay(), false); } ~ViewComponent() @@ -604,10 +590,10 @@ private: void prepareForDestruction() { - inner.removeClient(); + removeClient(); } - LV2UI_Widget getWidget() { return lv2_shared::wordCast (inner.getHostWindowID()); } + LV2UI_Widget getWidget() { return lv2_shared::wordCast (getHostWindowID()); } void forceViewToSize() {} void fitToView() {} diff --git a/modules/juce_gui_extra/native/juce_XEmbedComponent_linux.cpp b/modules/juce_gui_extra/native/juce_XEmbedComponent_linux.cpp index 47a8d14b0a..6bf95d2034 100644 --- a/modules/juce_gui_extra/native/juce_XEmbedComponent_linux.cpp +++ b/modules/juce_gui_extra/native/juce_XEmbedComponent_linux.cpp @@ -227,10 +227,10 @@ public: if (shouldReparent) X11Symbols::getInstance()->xReparentWindow (dpy, client, host, 0, 0); + updateMapping(); + if (supportsXembed) sendXEmbedEvent (CurrentTime, XEMBED_EMBEDDED_NOTIFY, 0, (long) host, xembedVersion); - - updateMapping(); } } @@ -478,11 +478,9 @@ private: return ((flags & XEMBED_MAPPED) != 0); } - else - { - supportsXembed = false; - xembedVersion = maxXEmbedVersionToSupport; - } + + supportsXembed = false; + xembedVersion = maxXEmbedVersionToSupport; return true; }