From cc85ce9c01c4bb3c07ee6d30167011771e8f3232 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Sat, 21 May 2016 23:47:37 -0700 Subject: [PATCH 1/2] fix crash on click on non-visible web-entity --- .../entities-renderer/src/RenderableWebEntityItem.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp index f0244d0e3f..8298dbcec5 100644 --- a/libraries/entities-renderer/src/RenderableWebEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableWebEntityItem.cpp @@ -226,10 +226,15 @@ void RenderableWebEntityItem::setSourceUrl(const QString& value) { } void RenderableWebEntityItem::setProxyWindow(QWindow* proxyWindow) { - _webSurface->setProxyWindow(proxyWindow); + if (_webSurface) { + _webSurface->setProxyWindow(proxyWindow); + } } QObject* RenderableWebEntityItem::getEventHandler() { + if (!_webSurface) { + return nullptr; + } return _webSurface->getEventHandler(); } From bf734395e5db8a3eba70658d22e089725e5eed2f Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Fri, 27 May 2016 12:14:33 -0700 Subject: [PATCH 2/2] More invisible web entity fixes --- interface/src/Application.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 48b418b93c..065eea14a8 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -994,7 +994,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : if (_keyboardFocusedItem != entityItemID) { _keyboardFocusedItem = UNKNOWN_ENTITY_ID; auto properties = entityScriptingInterface->getEntityProperties(entityItemID); - if (EntityTypes::Web == properties.getType() && !properties.getLocked()) { + if (EntityTypes::Web == properties.getType() && !properties.getLocked() && properties.getVisible()) { auto entity = entityScriptingInterface->getEntityTree()->findEntityByID(entityItemID); RenderableWebEntityItem* webEntity = dynamic_cast(entity.get()); if (webEntity) { @@ -1049,6 +1049,13 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : } }); + connect(this, &Application::aboutToQuit, [=]() { + _keyboardFocusedItem = UNKNOWN_ENTITY_ID; + if (_keyboardFocusHighlight) { + _keyboardFocusHighlight->setVisible(false); + } + }); + // Make sure we don't time out during slow operations at startup updateHeartbeat();