Skip to content

Commit

Permalink
GetPointer change for touch scrolled canvas
Browse files Browse the repository at this point in the history
  • Loading branch information
sjpemberton committed Nov 15, 2012
1 parent 5f23df7 commit 695edd4
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 34 deletions.
27 changes: 10 additions & 17 deletions dist/all.js
Original file line number Diff line number Diff line change
Expand Up @@ -2645,27 +2645,20 @@ fabric.util.string = {
* @param {Event} event
*/
function getPointer(event) {
var element = event.target || event.srcElement,
scrollLeft = 0,
scrollTop = 0,
firstFixedAncestor;

while (element && element.parentNode && !firstFixedAncestor) {
element = element.parentNode;
var x = event.clientX;
var y = event.clientY;

if (element !== fabric.document && fabric.util.getElementPosition(element) === 'fixed') firstFixedAncestor = element;
if (event.pageX == null && event.clientX != null) {
var eventDoc = event.target.ownerDocument || fabric.document;
var doc = eventDoc.documentElement;
var body = eventDoc.body;

scrollLeft += element.scrollLeft || 0;
scrollTop += element.scrollTop || 0;
}

var clientX = event.touches && event.touches[0] && event.touches[0].pageX || event.clientX;
var clientY = event.touches && event.touches[0] && event.touches[0].pageY || event.clientY;
x = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
y = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
}

return {
x: clientX + scrollLeft,
y: clientY + scrollTop
};
return { x: x, y: y };
}

var pointerX = function(event) {
Expand Down
27 changes: 10 additions & 17 deletions src/util/dom_event.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,27 +179,20 @@
* @param {Event} event
*/
function getPointer(event) {
var element = event.target || event.srcElement,
scrollLeft = 0,
scrollTop = 0,
firstFixedAncestor;

while (element && element.parentNode && !firstFixedAncestor) {
element = element.parentNode;
var x = event.clientX;
var y = event.clientY;

if (element !== fabric.document && fabric.util.getElementPosition(element) === 'fixed') firstFixedAncestor = element;
if (event.pageX == null && event.clientX != null) {
var eventDoc = event.target.ownerDocument || fabric.document;
var doc = eventDoc.documentElement;
var body = eventDoc.body;

scrollLeft += element.scrollLeft || 0;
scrollTop += element.scrollTop || 0;
}

var clientX = event.touches && event.touches[0] && event.touches[0].pageX || event.clientX;
var clientY = event.touches && event.touches[0] && event.touches[0].pageY || event.clientY;
x = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
y = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
}

return {
x: clientX + scrollLeft,
y: clientY + scrollTop
};
return { x: x, y: y };
}

var pointerX = function(event) {
Expand Down

0 comments on commit 695edd4

Please sign in to comment.