From a420b9852dd42a32486a1723295cfe3f8bc088d9 Mon Sep 17 00:00:00 2001
From: Kevin Lee <kevin@infinite-lee.com>
Date: Wed, 11 Apr 2018 13:47:56 -0700
Subject: [PATCH] cleanup _isInteractable(); _handleWheel properly handles
 different deltaModes now.

---
 src/components/super-cursor.js | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/components/super-cursor.js b/src/components/super-cursor.js
index c93bf8da1..ee70e9606 100644
--- a/src/components/super-cursor.js
+++ b/src/components/super-cursor.js
@@ -104,15 +104,10 @@ AFRAME.registerComponent("super-cursor", {
   },
 
   _isInteractable: function(el) {
-    if (el.className === "interactable") {
-      return true;
-    }
-
-    if (el.parentNode && el.parentNode != el.sceneEl) {
-      return this._isInteractable(el.parentNode);
-    }
-
-    return false;
+    return (
+      el.className === "interactable" ||
+      (el.parentNode && el.parentNode != el.sceneEl && this._isInteractable(el.parentNode))
+    );
   },
 
   _handleMouseDown: function() {
@@ -134,7 +129,19 @@ AFRAME.registerComponent("super-cursor", {
   },
 
   _handleWheel: function(e) {
-    if (this.isGrabbing) this.currentDistanceMod += e.deltaY / 10;
+    if (this.isGrabbing) {
+      switch (e.deltaMode) {
+        case e.DOM_DELTA_PIXEL:
+          this.currentDistanceMod += e.deltaY / 500;
+          break;
+        case e.DOM_DELTA_LINE:
+          this.currentDistanceMod += e.deltaY / 10;
+          break;
+        case e.DOM_DELTA_PAGE:
+          this.currentDistanceMod += e.deltaY / 2;
+          break;
+      }
+    }
   },
 
   _handleEnterVR: function() {
-- 
GitLab