From d1c92dae149673f225c1c1ea29ef70584e95ce41 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Wed, 3 Dec 2014 01:54:28 -0600 Subject: [PATCH] refactor(activator): activate immediately when not scrolling --- js/utils/activator.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/js/utils/activator.js b/js/utils/activator.js index bfa5a25a5b..bc0069c80e 100644 --- a/js/utils/activator.js +++ b/js/utils/activator.js @@ -14,7 +14,7 @@ // when an element is touched/clicked, it climbs up a few // parents to see if it is an .item or .button element ionic.requestAnimationFrame(function() { - if (ionic.tap.requiresNativeClick(e.target)) return; + if ((ionic.scroll && ionic.scroll.isScrolling) || ionic.tap.requiresNativeClick(e.target)) return; var ele = e.target; var eleToActivate; @@ -33,7 +33,7 @@ break; } // no sense climbing past these - if (ele.classList.contains('pane') || ele.tagName == 'BODY' || ele.tagName == 'ION-CONTENT') { + if (ele.tagName == 'ION-CONTENT' || ele.classList.contains('pane') || ele.tagName == 'BODY') { break; } ele = ele.parentElement; @@ -43,14 +43,10 @@ // queue that this element should be set to active queueElements[keyId] = eleToActivate; - // in XX milliseconds, set the queued elements to active - if (e.type === 'touchstart') { - self._activateTimeout = setTimeout(activateElements, 80); - } else { - ionic.requestAnimationFrame(activateElements); - } + // on the next frame, set the queued elements to active + ionic.requestAnimationFrame(activateElements); - keyId = (keyId > 19 ? 0 : keyId + 1); + keyId = (keyId > 29 ? 0 : keyId + 1); } }); @@ -58,7 +54,6 @@ end: function() { // clear out any active/queued elements after XX milliseconds - clearTimeout(self._activateTimeout); setTimeout(clear, 200); } @@ -85,7 +80,7 @@ function deactivateElements() { if (ionic.transition && ionic.transition.isActive) { - setTimeout(deactivateElements, 500); + setTimeout(deactivateElements, 400); return; }