diff --git a/interface/resources/qml/LoginDialog/LinkAccountBody.qml b/interface/resources/qml/LoginDialog/LinkAccountBody.qml index 4708bfdebe..6cbd1c4837 100644 --- a/interface/resources/qml/LoginDialog/LinkAccountBody.qml +++ b/interface/resources/qml/LoginDialog/LinkAccountBody.qml @@ -126,10 +126,12 @@ Item { activeFocusOnPress: true ShortcutText { + z: 10 anchors { - verticalCenter: usernameField.textFieldLabel.verticalCenter - left: usernameField.textFieldLabel.right - leftMargin: 10 + left: usernameField.left + top: usernameField.top + leftMargin: usernameField.textFieldLabel.contentWidth + 10 + topMargin: -19 } text: "Forgot Username?" @@ -154,10 +156,12 @@ Item { activeFocusOnPress: true ShortcutText { + z: 10 anchors { - verticalCenter: passwordField.textFieldLabel.verticalCenter - left: passwordField.textFieldLabel.right - leftMargin: 10 + left: passwordField.left + top: passwordField.top + leftMargin: passwordField.textFieldLabel.contentWidth + 10 + topMargin: -19 } text: "Forgot Password?" @@ -168,6 +172,7 @@ Item { onLinkActivated: loginDialog.openUrl(link) } + onFocusChanged: { root.text = ""; root.isPassword = true; diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 2033e8ee8e..6f95a1afe8 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2294,6 +2294,7 @@ void Application::domainConnectionRefused(const QString& reasonMessage, int reas QString message = "Unable to connect to the location you are visiting.\n"; message += reasonMessage; OffscreenUi::asyncWarning("", message); + getMyAvatar()->setWorldVelocity(glm::vec3(0.0f)); break; } default: diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index a7126b847e..d8ac3dc63e 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -279,18 +279,16 @@ EntityItemProperties RenderableModelEntityItem::getProperties(EntityPropertyFlag } bool RenderableModelEntityItem::supportsDetailedRayIntersection() const { - return isModelLoaded(); + return true; } bool RenderableModelEntityItem::findDetailedRayIntersection(const glm::vec3& origin, const glm::vec3& direction, OctreeElementPointer& element, float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking) const { auto model = getModel(); - if (!model) { - return true; + if (!model || !isModelLoaded()) { + return false; } - // qCDebug(entitiesrenderer) << "RenderableModelEntityItem::findDetailedRayIntersection() precisionPicking:" - // << precisionPicking; return model->findRayIntersectionAgainstSubMeshes(origin, direction, distance, face, surfaceNormal, extraInfo, precisionPicking, false); diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index 0f6ff918b3..d385dcca84 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -191,6 +191,7 @@ void ScriptEngines::shutdownScripting() { // Gracefully stop the engine's scripting thread scriptEngine->stop(); + removeScriptEngine(scriptEngine); // We need to wait for the engine to be done running before we proceed, because we don't // want any of the scripts final "scriptEnding()" or pending "update()" methods from accessing @@ -394,6 +395,7 @@ void ScriptEngines::stopAllScripts(bool restart) { // stop all scripts qCDebug(scriptengine) << "stopping script..." << it.key(); scriptEngine->stop(); + removeScriptEngine(scriptEngine); } // wait for engines to stop (ie: providing time for .scriptEnding cleanup handlers to run) before // triggering reload of any Client scripts / Entity scripts @@ -441,6 +443,7 @@ bool ScriptEngines::stopScript(const QString& rawScriptURL, bool restart) { } } scriptEngine->stop(); + removeScriptEngine(scriptEngine); stoppedScript = true; qCDebug(scriptengine) << "stopping script..." << scriptURL; }