From 0094d61473891443951dbf15e52c938ad853043a Mon Sep 17 00:00:00 2001
From: joni <johnfshaughnessy@gmail.com>
Date: Thu, 19 Apr 2018 16:39:06 -0700
Subject: [PATCH] Fix behaviour event handling.

---
 src/behaviours/joystick-dpad4.js |  8 +++++++-
 src/behaviours/trackpad-dpad4.js | 14 +++++++++++---
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/behaviours/joystick-dpad4.js b/src/behaviours/joystick-dpad4.js
index d0cc1e2a8..0eae7e1d1 100644
--- a/src/behaviours/joystick-dpad4.js
+++ b/src/behaviours/joystick-dpad4.js
@@ -8,10 +8,16 @@ function joystick_dpad4(el, outputPrefix) {
   this.previous = "none";
   this.hapticIntensity = "low";
   this.emitDPad4 = this.emitDPad4.bind(this);
-  el.addEventListener("axismove", this.emitDPad4);
+  this.el = el;
 }
 
 joystick_dpad4.prototype = {
+  addEventListeners: function() {
+    this.el.addEventListener("axismove", this.emitDPad4);
+  },
+  removeEventListeners: function() {
+    this.el.removeEventListener("axismove", this.emitDPad4);
+  },
   emitDPad4: function(event) {
     const x = event.detail.axis[0];
     const y = event.detail.axis[1];
diff --git a/src/behaviours/trackpad-dpad4.js b/src/behaviours/trackpad-dpad4.js
index b23ca1dbd..f15908d34 100644
--- a/src/behaviours/trackpad-dpad4.js
+++ b/src/behaviours/trackpad-dpad4.js
@@ -10,12 +10,20 @@ function trackpad_dpad4(el, outputPrefix) {
   this.unpress = this.unpress.bind(this);
   this.hapticIntensity = "low";
   this.centerRadius = 0.6;
-  el.addEventListener("axismove", this.emitDPad4);
-  el.addEventListener("trackpaddown", this.press);
-  el.addEventListener("trackpadup", this.unpress);
+  this.el = el;
 }
 
 trackpad_dpad4.prototype = {
+  addEventListeners: function() {
+    this.el.addEventListener("axismove", this.emitDPad4);
+    this.el.addEventListener("trackpaddown", this.press);
+    this.el.addEventListener("trackpadup", this.unpress);
+  },
+  removeEventListeners: function() {
+    this.el.removeEventListener("axismove", this.emitDPad4);
+    this.el.removeEventListener("trackpaddown", this.press);
+    this.el.removeEventListener("trackpadup", this.unpress);
+  },
   press: function() {
     this.pressed = true;
   },
-- 
GitLab