improve shouldDrawHit behaviour

This commit is contained in:
Лаврёнов Антон
2014-05-06 16:21:25 +08:00
parent 43d0deb717
commit f648852975
4 changed files with 14 additions and 9 deletions

View File

@@ -343,6 +343,11 @@
if (hasClip) {
context.restore();
}
},
shouldDrawHit: function(canvas) {
var layer = this.getLayer();
return ((canvas && canvas.isCache) || (layer && layer.hitGraphEnabled()))
&& this.isVisible() && !Kinetic.isDragging();
}
});

View File

@@ -10,10 +10,7 @@
if (type !== 'Group' && type !== 'Shape') {
Kinetic.Util.error('You may only add groups and shapes to groups.');
}
},
shouldDrawHit: function() {
return true;
},
}
});
Kinetic.Util.extend(Kinetic.Group, Kinetic.Container);

View File

@@ -1518,7 +1518,7 @@
// simulate event bubbling
var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) && ((compareShape && compareShape.isAncestorOf && compareShape.isAncestorOf(this)) || !!(compareShape && compareShape.isAncestorOf));
if(evt && !evt.cancelBubble && this.parent && (!stopBubble)) {
if(evt && !evt.cancelBubble && this.parent && this.parent.isListening() && (!stopBubble)) {
if(compareShape && compareShape.parent) {
this._fireAndBubble.call(this.parent, eventType, evt, compareShape.parent);
}

View File

@@ -2631,6 +2631,9 @@ suite('Node', function() {
listening : true
});
group.add(rect);
layer.draw();
showHit(layer);
assert.equal(rect.isListening(), true);
assert.equal(rect.shouldDrawHit(), true);
@@ -2657,13 +2660,13 @@ suite('Node', function() {
var top = stage.content.getBoundingClientRect().top;
stage._mousedown({
clientX: 291,
clientY: 112 + top
clientX: 150,
clientY: 75 + top
});
Kinetic.DD._endDragBefore();
stage._mouseup({
clientX: 291,
clientY: 112 + top
clientX: 150,
clientY: 75 + top
});
assert.equal(rectClick, 1, 'click on rectange');