From 01eb3eddabf2c4c7e31fd324d3de721faf943c4c Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Mon, 9 Jul 2018 10:46:02 -0700 Subject: [PATCH 1/2] Fix MS16480: Disable active ContextOverlays when disabling ContextOverlayInterface --- interface/src/ui/overlays/ContextOverlayInterface.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/interface/src/ui/overlays/ContextOverlayInterface.cpp b/interface/src/ui/overlays/ContextOverlayInterface.cpp index aca186a589..c6323614c5 100644 --- a/interface/src/ui/overlays/ContextOverlayInterface.cpp +++ b/interface/src/ui/overlays/ContextOverlayInterface.cpp @@ -97,6 +97,10 @@ static const float CONTEXT_OVERLAY_UNHOVERED_COLORPULSE = 1.0f; void ContextOverlayInterface::setEnabled(bool enabled) { _enabled = enabled; + if (!enabled) { + // Destroy any potentially-active ContextOverlays when disabling the interface + createOrDestroyContextOverlay(EntityItemID(), PointerEvent()); + } } void ContextOverlayInterface::clickDownOnEntity(const EntityItemID& entityItemID, const PointerEvent& event) { From 2fad55e5d0d029da02f76ce11d1499363173cd1c Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 10 Jul 2018 15:55:01 -0700 Subject: [PATCH 2/2] Prevent PAL from re-enabling ContextOverlayInterface when it's not supposed to --- scripts/system/pal.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/system/pal.js b/scripts/system/pal.js index 7175685b4f..e967ee6469 100644 --- a/scripts/system/pal.js +++ b/scripts/system/pal.js @@ -670,12 +670,13 @@ triggerPressMapping.from(Controller.Standard.RT).peek().to(makePressHandler(Cont triggerPressMapping.from(Controller.Standard.LT).peek().to(makePressHandler(Controller.Standard.LeftHand)); function tabletVisibilityChanged() { - if (!tablet.tabletShown) { + if (!tablet.tabletShown && onPalScreen) { ContextOverlay.enabled = true; tablet.gotoHomeScreen(); } } +var wasOnPalScreen = false; var onPalScreen = false; var PAL_QML_SOURCE = "hifi/Pal.qml"; function onTabletButtonClicked() { @@ -706,6 +707,7 @@ function wireEventBridge(on) { } function onTabletScreenChanged(type, url) { + wasOnPalScreen = onPalScreen; onPalScreen = (type === "QML" && url === PAL_QML_SOURCE); wireEventBridge(onPalScreen); // for toolbar mode: change button to active when window is first openend, false otherwise. @@ -729,7 +731,9 @@ function onTabletScreenChanged(type, url) { populateNearbyUserList(); } else { off(); - ContextOverlay.enabled = true; + if (wasOnPalScreen) { + ContextOverlay.enabled = true; + } } }