try a different way of repairing tablet after a domain change

This commit is contained in:
Seth Alves 2017-01-24 15:49:49 -08:00
parent 19cf84dd5d
commit 601a35a9b6
2 changed files with 15 additions and 10 deletions

View file

@ -17,7 +17,7 @@
#include "DependencyManager.h" #include "DependencyManager.h"
#include "AddressManager.h" #include "AddressManager.h"
#include "DialogsManager.h" #include "DialogsManager.h"
#include "scripting/HMDScriptingInterface.h" // #include "scripting/HMDScriptingInterface.h"
HIFI_QML_DEF(AddressBarDialog) HIFI_QML_DEF(AddressBarDialog)
@ -40,10 +40,10 @@ AddressBarDialog::AddressBarDialog(QQuickItem* parent) : OffscreenQmlDialog(pare
_backEnabled = !(DependencyManager::get<AddressManager>()->getBackStack().isEmpty()); _backEnabled = !(DependencyManager::get<AddressManager>()->getBackStack().isEmpty());
_forwardEnabled = !(DependencyManager::get<AddressManager>()->getForwardStack().isEmpty()); _forwardEnabled = !(DependencyManager::get<AddressManager>()->getForwardStack().isEmpty());
connect(addressManager.data(), &AddressManager::hostChanged, this, &AddressBarDialog::metaverseServerUrlChanged); connect(addressManager.data(), &AddressManager::hostChanged, this, &AddressBarDialog::metaverseServerUrlChanged);
connect(addressManager.data(), &AddressManager::hostChanged, [](){ // connect(addressManager.data(), &AddressManager::hostChanged, [](){
auto HMD = DependencyManager::get<HMDScriptingInterface>(); // auto HMD = DependencyManager::get<HMDScriptingInterface>();
HMD->setShouldShowTablet(false); // HMD->setShouldShowTablet(false);
}); // });
connect(DependencyManager::get<DialogsManager>().data(), &DialogsManager::setUseFeed, this, &AddressBarDialog::setUseFeed); connect(DependencyManager::get<DialogsManager>().data(), &DialogsManager::setUseFeed, this, &AddressBarDialog::setUseFeed);
connect(qApp, &Application::receivedHifiSchemeURL, this, &AddressBarDialog::receivedHifiSchemeURL); connect(qApp, &Application::receivedHifiSchemeURL, this, &AddressBarDialog::receivedHifiSchemeURL);
} }
@ -51,8 +51,8 @@ AddressBarDialog::AddressBarDialog(QQuickItem* parent) : OffscreenQmlDialog(pare
void AddressBarDialog::loadAddress(const QString& address, bool fromSuggestions) { void AddressBarDialog::loadAddress(const QString& address, bool fromSuggestions) {
qDebug() << "Called LoadAddress with address " << address; qDebug() << "Called LoadAddress with address " << address;
if (!address.isEmpty()) { if (!address.isEmpty()) {
auto HMD = DependencyManager::get<HMDScriptingInterface>(); // auto HMD = DependencyManager::get<HMDScriptingInterface>();
HMD->setShouldShowTablet(false); // HMD->setShouldShowTablet(false);
DependencyManager::get<AddressManager>()->handleLookupString(address, fromSuggestions); DependencyManager::get<AddressManager>()->handleLookupString(address, fromSuggestions);
} }
} }
@ -64,8 +64,8 @@ void AddressBarDialog::loadHome() {
if (homeLocation == "") { if (homeLocation == "") {
homeLocation = DEFAULT_HOME_LOCATION; homeLocation = DEFAULT_HOME_LOCATION;
} }
auto HMD = DependencyManager::get<HMDScriptingInterface>(); // auto HMD = DependencyManager::get<HMDScriptingInterface>();
HMD->setShouldShowTablet(false); // HMD->setShouldShowTablet(false);
DependencyManager::get<AddressManager>()->handleLookupString(homeLocation); DependencyManager::get<AddressManager>()->handleLookupString(homeLocation);
} }

View file

@ -54,7 +54,12 @@
tablet.updateAudioBar(currentMicLevel); tablet.updateAudioBar(currentMicLevel);
} }
if (HMD.showTablet && !tabletShown) { if (tabletShown && UIWebTablet && Overlays.getOverlayType(UIWebTablet.webOverlayID) != "web3d") {
// when we switch domains, the tablet entity gets destroyed and recreated. this causes
// the overlay to be deleted, but not recreated. repair this situation here:
hideTabletUI();
showTabletUI();
} else if (HMD.showTablet && !tabletShown) {
showTabletUI(); showTabletUI();
} else if (!HMD.showTablet && tabletShown) { } else if (!HMD.showTablet && tabletShown) {
hideTabletUI(); hideTabletUI();