don't show keyboard in edit.js unless HMD is being worn

This commit is contained in:
Seth Alves 2017-02-16 09:56:50 -08:00
parent 1412fd6dab
commit 21b0e45b0f
5 changed files with 21 additions and 12 deletions

View file

@ -831,6 +831,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
connect(this, &QCoreApplication::aboutToQuit, addressManager.data(), &AddressManager::storeCurrentAddress);
connect(this, &Application::activeDisplayPluginChanged, this, &Application::updateThreadPoolCount);
connect(this, &Application::activeDisplayPluginChanged, this, [](){
qApp->setProperty(hifi::properties::HMD, qApp->isHMDMode());
});
// Save avatar location immediately after a teleport.
connect(myAvatar.get(), &MyAvatar::positionGoneTo,

View file

@ -131,7 +131,7 @@ glm::quat HMDScriptingInterface::getOrientation() const {
return glm::quat();
}
bool HMDScriptingInterface::isMounted() const{
bool HMDScriptingInterface::isMounted() const {
auto displayPlugin = qApp->getActiveDisplayPlugin();
return (displayPlugin->isHmd() && displayPlugin->isDisplayVisible());
}

View file

@ -32,6 +32,7 @@
#include <AccountManager.h>
#include <NetworkAccessManager.h>
#include <GLMHelpers.h>
#include <shared/GlobalAppProperties.h>
#include "OffscreenGLCanvas.h"
#include "GLHelpers.h"
@ -911,20 +912,23 @@ void OffscreenQmlSurface::setKeyboardRaised(QObject* object, bool raised, bool n
return;
}
QQuickItem* item = dynamic_cast<QQuickItem*>(object);
while (item) {
// Numeric value may be set in parameter from HTML UI; for QML UI, detect numeric fields here.
numeric = numeric || QString(item->metaObject()->className()).left(7) == "SpinBox";
// if HMD is being worn, allow keyboard to open. allow it to close, HMD or not.
if (!raised || qApp->property(hifi::properties::HMD).toBool()) {
QQuickItem* item = dynamic_cast<QQuickItem*>(object);
while (item) {
// Numeric value may be set in parameter from HTML UI; for QML UI, detect numeric fields here.
numeric = numeric || QString(item->metaObject()->className()).left(7) == "SpinBox";
if (item->property("keyboardRaised").isValid()) {
// FIXME - HMD only: Possibly set value of "keyboardEnabled" per isHMDMode() for use in WebView.qml.
if (item->property("punctuationMode").isValid()) {
item->setProperty("punctuationMode", QVariant(numeric));
if (item->property("keyboardRaised").isValid()) {
// FIXME - HMD only: Possibly set value of "keyboardEnabled" per isHMDMode() for use in WebView.qml.
if (item->property("punctuationMode").isValid()) {
item->setProperty("punctuationMode", QVariant(numeric));
}
item->setProperty("keyboardRaised", QVariant(raised));
return;
}
item->setProperty("keyboardRaised", QVariant(raised));
return;
item = dynamic_cast<QQuickItem*>(item->parentItem());
}
item = dynamic_cast<QQuickItem*>(item->parentItem());
}
}

View file

@ -16,6 +16,7 @@ namespace hifi { namespace properties {
const char* OCULUS_STORE = "com.highfidelity.oculusStore";
const char* TEST = "com.highfidelity.test";
const char* TRACING = "com.highfidelity.tracing";
const char* HMD = "com.highfidelity.hmd";
namespace gl {
const char* BACKEND = "com.highfidelity.gl.backend";

View file

@ -18,6 +18,7 @@ namespace hifi { namespace properties {
extern const char* OCULUS_STORE;
extern const char* TEST;
extern const char* TRACING;
extern const char* HMD;
namespace gl {
extern const char* BACKEND;