diff --git a/src/core/services/gesture/gesture.js b/src/core/services/gesture/gesture.js index c1383cc13b9..d9eb8f7a3c4 100644 --- a/src/core/services/gesture/gesture.js +++ b/src/core/services/gesture/gesture.js @@ -11,8 +11,11 @@ var END_EVENTS = 'mouseup mouseleave touchend touchcancel pointerup pointercance var HANDLERS; document.addEventListener('click', function(ev) { + // Space/enter on a button, and submit events, can send clicks + var isKeyClick = ev.clientX === 0 && ev.clientY === 0 && + ev.x === 0 && ev.y === 0; // Prevent clicks unless they're sent by material - if (!ev.$material) { + if (!isKeyClick && !ev.$material) { ev.preventDefault(); ev.stopPropagation(); } diff --git a/src/core/services/gesture/gesture.spec.js b/src/core/services/gesture/gesture.spec.js index 600086780dd..e90272b4d80 100644 --- a/src/core/services/gesture/gesture.spec.js +++ b/src/core/services/gesture/gesture.spec.js @@ -1,4 +1,5 @@ describe('$mdGesture', function() { + beforeEach(module('material.core', function() { angular.element(document).triggerHandler('$$mdGestureReset'); }));