mirror of
https://github.com/konvajs/konva.git
synced 2025-07-16 01:22:35 +08:00
fixed edge case when setting draggable=false on dragend
This commit is contained in:
parent
d0148a50ac
commit
3a6a55d1cc
@ -67,7 +67,9 @@
|
|||||||
// if we don't delay the prev parent redraw, dd will
|
// if we don't delay the prev parent redraw, dd will
|
||||||
// flicker on mobile devices
|
// flicker on mobile devices
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
if(dd.prevParent) {
|
||||||
dd.prevParent.getLayer().draw();
|
dd.prevParent.getLayer().draw();
|
||||||
|
}
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +117,7 @@
|
|||||||
node.draw();
|
node.draw();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(nodeType === 'Group' || nodeType === 'Shape') {
|
if((nodeType === 'Group' || nodeType === 'Shape') && dd.prevParent) {
|
||||||
node.moveTo(dd.prevParent);
|
node.moveTo(dd.prevParent);
|
||||||
dd.topLayer.remove();
|
dd.topLayer.remove();
|
||||||
dd.prevParent = null;
|
dd.prevParent = null;
|
||||||
@ -125,7 +127,9 @@
|
|||||||
node.getLayer().draw();
|
node.getLayer().draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle dragend
|
// only fire dragend event if the drag and drop
|
||||||
|
// operation actually started. This can be detected by
|
||||||
|
// checking dd.moving
|
||||||
if(dd.moving) {
|
if(dd.moving) {
|
||||||
dd.moving = false;
|
dd.moving = false;
|
||||||
node._handleEvent('dragend', evt);
|
node._handleEvent('dragend', evt);
|
||||||
|
@ -77,6 +77,8 @@ Test.Modules.DD = {
|
|||||||
|
|
||||||
circle.on('dragend', function() {
|
circle.on('dragend', function() {
|
||||||
dragEnd = true;
|
dragEnd = true;
|
||||||
|
// test set draggable false after drag end
|
||||||
|
this.setDraggable(false);
|
||||||
});
|
});
|
||||||
warn(layer.toDataURL() === dataUrls['drag circle before'], 'start data url is incorrect');
|
warn(layer.toDataURL() === dataUrls['drag circle before'], 'start data url is incorrect');
|
||||||
/*
|
/*
|
||||||
@ -109,6 +111,7 @@ Test.Modules.DD = {
|
|||||||
test(dragStart, 'dragstart event was not triggered');
|
test(dragStart, 'dragstart event was not triggered');
|
||||||
test(dragMove, 'dragmove event was not triggered');
|
test(dragMove, 'dragmove event was not triggered');
|
||||||
test(dragEnd, 'dragend event was not triggered');
|
test(dragEnd, 'dragend event was not triggered');
|
||||||
|
test(!circle.getDraggable(), 'circle should no longer be draggable');
|
||||||
|
|
||||||
warn(layer.toDataURL() === dataUrls['drag circle after'], 'end data url is incorrect');
|
warn(layer.toDataURL() === dataUrls['drag circle after'], 'end data url is incorrect');
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user