From c60fef38175ad989ee0c45e924cb27e1417c8667 Mon Sep 17 00:00:00 2001
From: Peter Kim <pk15950@gmail.com>
Date: Tue, 7 Dec 2021 20:54:20 +0900
Subject: [PATCH] Fix T93509: Unintended navigation on Valve Index

The input bindings for "grab" navigation on the Valve Index controllers
could previously trigger the action even when the user did not intend
to do so (i.e. their hand was not actively gripping the sensor). This
was resolved by changing the bindings from "/input/squeeze/value" to
"/input/squeeze/force" and increasing the input threshold from 0.3 to
0.5.

Thanks to sybren for testing.
---
 viewport_vr_preview/configs/default.py | 2 +-
 viewport_vr_preview/defaults.py        | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/viewport_vr_preview/configs/default.py b/viewport_vr_preview/configs/default.py
index bf4c46c75..a20c5c6de 100644
--- a/viewport_vr_preview/configs/default.py
+++ b/viewport_vr_preview/configs/default.py
@@ -54,7 +54,7 @@ actionconfig_data = \
      {"bindings":
       [("cosmos", {"profile": '/interaction_profiles/htc/vive_cosmos_controller', "component_path0": '/input/squeeze/click', "component_path1": '/input/squeeze/click', "threshold": '0.30000001192092896', "axis_region": 'ANY'}),
        ("huawei", {"profile": '/interaction_profiles/huawei/controller', "component_path0": '/input/trackpad/click', "component_path1": '/input/trackpad/click', "threshold": '0.30000001192092896', "axis_region": 'ANY'}),
-       ("index", {"profile": '/interaction_profiles/valve/index_controller', "component_path0": '/input/squeeze/value', "component_path1": '/input/squeeze/value', "threshold": '0.30000001192092896', "axis_region": 'ANY'}),
+       ("index", {"profile": '/interaction_profiles/valve/index_controller', "component_path0": '/input/squeeze/force', "component_path1": '/input/squeeze/force', "threshold": '0.5', "axis_region": 'ANY'}),
        ("oculus", {"profile": '/interaction_profiles/oculus/touch_controller', "component_path0": '/input/squeeze/value', "component_path1": '/input/squeeze/value', "threshold": '0.30000001192092896', "axis_region": 'ANY'}),
        ("reverb_g2", {"profile": '/interaction_profiles/hp/mixed_reality_controller', "component_path0": '/input/squeeze/value', "component_path1": '/input/squeeze/value', "threshold": '0.30000001192092896', "axis_region": 'ANY'}),
        ("simple", {"profile": '/interaction_profiles/khr/simple_controller', "component_path0": '/input/menu/click', "component_path1": '/input/menu/click', "threshold": '0.30000001192092896', "axis_region": 'ANY'}),
diff --git a/viewport_vr_preview/defaults.py b/viewport_vr_preview/defaults.py
index fc768b8a7..2543cd03e 100644
--- a/viewport_vr_preview/defaults.py
+++ b/viewport_vr_preview/defaults.py
@@ -453,9 +453,9 @@ def vr_defaults_create_default(session_state):
         vr_defaults_actionbinding_add(ami,
                                       VRDefaultActionbindings.INDEX.value,
                                       VRDefaultActionprofiles.INDEX.value,
-                                      "/input/squeeze/value",
-                                      "/input/squeeze/value",
-                                      0.3,
+                                      "/input/squeeze/force",
+                                      "/input/squeeze/force",
+                                      0.5,
                                       'ANY',
                                       'ANY')
         vr_defaults_actionbinding_add(ami,
-- 
GitLab