From 526fc7d062366dbf3b2be7c8e87b80c70d01e391 Mon Sep 17 00:00:00 2001
From: howard-stearns <howard.stearns@gmail.com>
Date: Mon, 13 Jun 2016 17:13:10 -0700
Subject: [PATCH] Make handControllerGrab independent of whether we're using
 laser or Reticle.

---
 scripts/system/controllers/handControllerGrab.js | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js
index 25cd100991..53c16f26c1 100644
--- a/scripts/system/controllers/handControllerGrab.js
+++ b/scripts/system/controllers/handControllerGrab.js
@@ -300,7 +300,10 @@ function propsArePhysical(props) {
 // and we should not be showing lasers when someone else is using the Reticle to indicate a 2D minor mode.
 var EXTERNALLY_MANAGED_2D_MINOR_MODE = true;
 function isIn2DMode() {
-    return EXTERNALLY_MANAGED_2D_MINOR_MODE && Reticle.visible;
+    // In this version, we make our own determination of whether we're aimed a HUD element,
+    // because other scripts (such as handControllerPointer) might be using some other visualization
+    // instead of setting Reticle.visible.
+    return EXTERNALLY_MANAGED_2D_MINOR_MODE && (Reticle.pointingAtSystemOverlay || Overlays.getOverlayAtPoint(Reticle.position));
 }
 function restore2DMode() {
     if (!EXTERNALLY_MANAGED_2D_MINOR_MODE) {