From 8c81e02a87a08b2ab88318356d7dda234b3d53e7 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 3 Jun 2016 21:33:15 -0500 Subject: [PATCH] refactor: Use stateChange hook for releasing keybinding --- website/client/js/controllers/inventoryCtrl.js | 12 ++++++++++-- website/client/js/controllers/tasksCtrl.js | 17 ++++++++--------- website/views/main/index.jade | 2 +- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/website/client/js/controllers/inventoryCtrl.js b/website/client/js/controllers/inventoryCtrl.js index 41fa416abf..b6ff45cbf7 100644 --- a/website/client/js/controllers/inventoryCtrl.js +++ b/website/client/js/controllers/inventoryCtrl.js @@ -264,10 +264,18 @@ habitrpg.controller("InventoryCtrl", } }; - $scope.$on("habit:keydown", function (e, keyEvent) { - if (keyEvent.keyCode == "27") { + var listenForEscape = function (event) { + if (event.keyCode === 27) { $scope.deselectItem(); } + } + + document.addEventListener('keydown', listenForEscape); + + $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams, options){ + if (toState.name.indexOf('options.inventory') < 0) { + document.removeEventListener('keydown', listenForEscape); + } }); $scope.deselectItem = function() { diff --git a/website/client/js/controllers/tasksCtrl.js b/website/client/js/controllers/tasksCtrl.js index 4e2bae7fad..cff78a93d0 100644 --- a/website/client/js/controllers/tasksCtrl.js +++ b/website/client/js/controllers/tasksCtrl.js @@ -308,16 +308,15 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N } } - $scope.hoverIn = function () { - document.addEventListener('keydown', isCtrlPressed); - document.addEventListener('keyup', isCtrlLetGo); - } + document.addEventListener('keydown', isCtrlPressed); + document.addEventListener('keyup', isCtrlLetGo); - $scope.hoverOut = function () { - $scope.ctrlPressed = false; - document.removeEventListener('keydown', isCtrlPressed); - document.removeEventListener('keyup', isCtrlLetGo); - } + $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams, options){ + if (toState.name.indexOf('tasks') < 0) { + document.removeEventListener('keydown', isCtrlPressed); + document.removeEventListener('keyup', isCtrlLetGo); + } + }); /* ------------------------ diff --git a/website/views/main/index.jade b/website/views/main/index.jade index 634af85e1b..586ce3ca60 100644 --- a/website/views/main/index.jade +++ b/website/views/main/index.jade @@ -1,4 +1,4 @@ script(id='partials/main.html', type="text/ng-template") include ./filters - div(ng-controller='TasksCtrl', ng-mouseenter="hoverIn()", ng-mouseleave="hoverOut()") + div(ng-controller='TasksCtrl') habitrpg-tasks(main='true', obj='user')