Commit f65e4362 by Brandon DeRosier Committed by GitHub

Merge pull request #11 from open-craft/bdero/port-mobile-dragging-fix

Port "Improve touchscreen dragging"
parents f2bb3993 577819fc
...@@ -409,19 +409,22 @@ function VectorDrawXBlock(runtime, element, init_args) { ...@@ -409,19 +409,22 @@ function VectorDrawXBlock(runtime, element, init_args) {
return true; return true;
}; };
VectorDraw.prototype.objectsUnderMouse = function(coords) { VectorDraw.prototype.objectsUnderMouse = function() {
var filter = function(el) { var targetObjects = [];
return !(el instanceof JXG.Image) && el.hasPoint(coords.scrCoords[1], coords.scrCoords[2]); var highlightedObjects = this.board.highlightedObjects
}; var keys = Object.keys(highlightedObjects);
return _.filter(_.values(this.board.objects), filter); for (var i = 0; i < keys.length; i++) {
}; targetObjects.push( highlightedObjects[keys[i]] );
}
return targetObjects
}
VectorDraw.prototype.onBoardDown = function(evt) { VectorDraw.prototype.onBoardDown = function(evt) {
this.pushHistory(); this.pushHistory();
// Can't create a vector if none is selected from the list. // Can't create a vector if none is selected from the list.
var selected = this.getSelectedElement(); var selected = this.getSelectedElement();
var coords = this.getMouseCoords(evt); var coords = this.getMouseCoords(evt);
var targetObjects = this.objectsUnderMouse(coords); var targetObjects = this.objectsUnderMouse();
if (!_.isEmpty(selected) && (!targetObjects || _.all(targetObjects, this.canCreateVectorOnTopOf.bind(this)))) { if (!_.isEmpty(selected) && (!targetObjects || _.all(targetObjects, this.canCreateVectorOnTopOf.bind(this)))) {
var point_coords = [coords.usrCoords[1], coords.usrCoords[2]]; var point_coords = [coords.usrCoords[1], coords.usrCoords[2]];
if (selected.type === 'vector') { if (selected.type === 'vector') {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment