From 47bef18bd4c09526f7a9841d690c572ff76beb4a Mon Sep 17 00:00:00 2001
From: howard-stearns <howard.stearns@gmail.com>
Date: Mon, 14 Nov 2016 13:05:35 -0800
Subject: [PATCH] show the hand controllers when in third-person+hmd, but
 currently, they're at avatar hands instead of physical hand, which is not
 what we want!

---
 scripts/system/hmd.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/scripts/system/hmd.js b/scripts/system/hmd.js
index bac8580222..5dd06de8eb 100644
--- a/scripts/system/hmd.js
+++ b/scripts/system/hmd.js
@@ -22,6 +22,19 @@ var desktopMenuItemName = "Desktop";
     }
 });
 
+var controllerDisplay = false;
+function updateControllerDisplay() {
+    if (HMD.active && Menu.isOptionChecked("Third Person")) {
+        if (!controllerDisplay) {
+            HMD.requestShowHandControllers();
+            controllerDisplay = true;
+        }
+    } else if (controllerDisplay) {
+        HMD.requestHideHandControllers();
+        controllerDisplay = false;
+    }
+}
+
 var toolBar = Toolbars.getToolbar("com.highfidelity.interface.toolbar.system");
 var button;
 // Independent and Entity mode make people sick. Third Person and Mirror have traps that we need to work through.
@@ -34,6 +47,7 @@ function onHmdChanged(isHmd) {
     desktopOnlyViews.forEach(function (view) {
         Menu.setMenuEnabled("View>" + view, !isHmd);
     });
+    updateControllerDisplay();
 }
 function onClicked(){
     var isDesktop = Menu.isOptionChecked(desktopMenuItemName);
@@ -52,11 +66,13 @@ if (headset) {
 
     button.clicked.connect(onClicked);
     HMD.displayModeChanged.connect(onHmdChanged);
+    Camera.modeUpdated.connect(updateControllerDisplay);
 
     Script.scriptEnding.connect(function () {
         toolBar.removeButton("hmdToggle");
         button.clicked.disconnect(onClicked);
         HMD.displayModeChanged.disconnect(onHmdChanged);
+        Camera.modeUpdated.disconnect(updateControllerDisplay);
     });
 }