diff --git a/Samples/Common/include/SdkSample.h b/Samples/Common/include/SdkSample.h index 54e26becbbe..54a2b4afab3 100644 --- a/Samples/Common/include/SdkSample.h +++ b/Samples/Common/include/SdkSample.h @@ -116,7 +116,7 @@ namespace OgreBites bool frameRenderingQueued(const Ogre::FrameEvent& evt) override { - if (mTrayMgr->isDialogVisible()) + if (mTrayMgr && mTrayMgr->isDialogVisible()) return true; mInputListenerChain.frameRendered(evt); @@ -185,6 +185,13 @@ namespace OgreBites mContext->addInputListener(&mInputListenerChain); } + void _removeTrays() + { + mControls.reset(); + mTrayMgr.reset(); + mInputListenerChain = TouchAgnosticInputListenerChain(mWindow, {}); + } + void _shutdown() override { if(mContext) diff --git a/Tests/VisualTests/Context/src/TestContext.cpp b/Tests/VisualTests/Context/src/TestContext.cpp index 50b424d74ec..fcef793e775 100644 --- a/Tests/VisualTests/Context/src/TestContext.cpp +++ b/Tests/VisualTests/Context/src/TestContext.cpp @@ -33,6 +33,7 @@ THE SOFTWARE. #include "OgreConfigFile.h" #include "OgrePlatform.h" #include "OgreBitesConfigDialog.h" +#include #include @@ -317,6 +318,11 @@ void TestContext::runSample(OgreBites::Sample* sampleToRun) if(sampleToRun) LogManager::getSingleton().logMessage("----- Running Visual Test " + sampleToRun->getInfo()["Title"] + " -----"); SampleContext::runSample(sampleToRun); + + if(auto sdkSample = dynamic_cast(sampleToRun)) + { + sdkSample->_removeTrays(); + } } //-----------------------------------------------------------------------