From 3555b6e9d5464f5ddd4ad1289538b00a77781da9 Mon Sep 17 00:00:00 2001 From: jules Date: Tue, 18 Sep 2012 10:37:08 +0100 Subject: [PATCH] Made rendering engine choice persist when ComponentPeers are re-created. --- modules/juce_gui_basics/components/juce_Component.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index aa1ac2e036..f93d76b087 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -565,6 +565,7 @@ void Component::addToDesktop (int styleWanted, void* nativeWindowToAttachTo) bool wasMinimised = false; ComponentBoundsConstrainer* currentConstainer = nullptr; Rectangle oldNonFullScreenBounds; + int oldRenderingEngine = -1; if (peer != nullptr) { @@ -574,6 +575,7 @@ void Component::addToDesktop (int styleWanted, void* nativeWindowToAttachTo) wasMinimised = peer->isMinimised(); currentConstainer = peer->getConstrainer(); oldNonFullScreenBounds = peer->getNonFullScreenBounds(); + oldRenderingEngine = peer->getCurrentRenderingEngine(); flags.hasHeavyweightPeerFlag = false; Desktop::getInstance().removeDesktopComponent (this); @@ -598,6 +600,10 @@ void Component::addToDesktop (int styleWanted, void* nativeWindowToAttachTo) bounds.setPosition (topLeft); peer->setBounds (topLeft.x, topLeft.y, getWidth(), getHeight(), false); + + if (oldRenderingEngine >= 0) + peer->setCurrentRenderingEngine (oldRenderingEngine); + peer->setVisible (isVisible()); peer = ComponentPeer::getPeerFor (this);