Skip to content

Commit

Permalink
Put back touch input event buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
ten1seven committed Feb 17, 2016
1 parent ab55bfa commit 85832bd
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 8 deletions.
36 changes: 29 additions & 7 deletions what-input.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
// cache document.body
var body = document.body;

// boolean: true if touch buffer timer is running
var buffer = false;

// the last used input type
var currentInput = null;

Expand Down Expand Up @@ -76,13 +79,32 @@
4: 'mouse'
};

// touch buffer timer
var timer;


/*
---------------
functions
---------------
*/

// allows events that are also triggered to be filtered out for `touchstart`
function eventBuffer() {
clearTimeout(timer);

setInput(event);

buffer = true;
timer = setTimeout(function() {
buffer = false;
}, 300);
}

function bufferedEvent(event) {
if (!buffer) setInput(event);
}

function setInput(event) {
var eventKey = key(event);
var eventTarget = target(event);
Expand Down Expand Up @@ -151,20 +173,20 @@

// pointer events (mouse, pen, touch)
if (window.PointerEvent) {
body.addEventListener('pointerdown', setInput);
body.addEventListener('pointermove', setInput);
body.addEventListener('pointerdown', bufferedEvent);
body.addEventListener('pointermove', bufferedEvent);
} else if (window.MSPointerEvent) {
body.addEventListener('MSPointerDown', setInput);
body.addEventListener('MSPointerMove', setInput);
body.addEventListener('MSPointerDown', bufferedEvent);
body.addEventListener('MSPointerMove', bufferedEvent);
} else {

// mouse events
body.addEventListener('mousedown', setInput);
body.addEventListener('mousemove', setInput);
body.addEventListener('mousedown', bufferedEvent);
body.addEventListener('mousemove', bufferedEvent);

// touch events
if ('ontouchstart' in window) {
body.addEventListener('touchstart', setInput);
body.addEventListener('touchstart', eventBuffer);
}
}

Expand Down
2 changes: 1 addition & 1 deletion what-input.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 85832bd

Please sign in to comment.