mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-05-23 04:35:48 +00:00
backport subtarget fix
This commit is contained in:
parent
0f265631b3
commit
124da9ca26
2 changed files with 36 additions and 1 deletions
|
|
@ -1106,7 +1106,8 @@
|
|||
pointer = this.getPointer(e, ignoreZoom),
|
||||
activeObject = this._activeObject,
|
||||
aObjects = this.getActiveObjects(),
|
||||
activeTarget;
|
||||
activeTarget, activeTargetSubs;
|
||||
|
||||
// first check current group (if one exists)
|
||||
// active group does not check sub targets like normal groups.
|
||||
// if active group just exits.
|
||||
|
|
@ -1126,11 +1127,14 @@
|
|||
}
|
||||
else {
|
||||
activeTarget = activeObject;
|
||||
activeTargetSubs = this.targets;
|
||||
this.targets = [];
|
||||
}
|
||||
}
|
||||
var target = this._searchPossibleTargets(this._objects, pointer);
|
||||
if (e[this.altSelectionKey] && target && activeTarget && target !== activeTarget) {
|
||||
target = activeTarget;
|
||||
this.targets = activeTargetSubs;
|
||||
}
|
||||
return target;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -465,6 +465,37 @@
|
|||
canvas.remove(group);
|
||||
});
|
||||
|
||||
test('findTarget with subTargetCheck on activeObject and preserveObjectStacking true', function() {
|
||||
var rect = makeRect({ left: 0, top: 0 }),
|
||||
rect2 = makeRect({ left: 30, top: 30}), target,
|
||||
group = new fabric.Group([rect, rect2]);
|
||||
canvas.preserveObjectStacking = true;
|
||||
canvas.add(group);
|
||||
canvas.setActiveObject(group);
|
||||
group.subTargetCheck = true;
|
||||
target = canvas.findTarget({
|
||||
clientX: 9, clientY: 9
|
||||
});
|
||||
equal(target, group, 'Should return the group');
|
||||
equal(canvas.targets[0], rect, 'should return the rect');
|
||||
|
||||
target = canvas.findTarget({
|
||||
clientX: 9, clientY: 9
|
||||
});
|
||||
|
||||
target = canvas.findTarget({
|
||||
clientX: 9, clientY: 9
|
||||
});
|
||||
|
||||
target = canvas.findTarget({
|
||||
clientX: 9, clientY: 9
|
||||
});
|
||||
|
||||
equal(canvas.targets.length, 1, 'multiple calls to subtarget should not add more to targets');
|
||||
|
||||
canvas.remove(group);
|
||||
});
|
||||
|
||||
test('findTarget with perPixelTargetFind', function() {
|
||||
ok(typeof canvas.findTarget == 'function');
|
||||
var triangle = makeTriangle({ left: 0, top: 0 }), target;
|
||||
|
|
|
|||
Loading…
Reference in a new issue