Don't end drag when parent removed

This commit is contained in:
Ansis Brammanis
2013-02-12 11:29:21 -05:00
parent 127f4fb3e4
commit 2062fe9a67
2 changed files with 9 additions and 3 deletions

View File

@@ -24,7 +24,7 @@ iD.behavior.drag = function() {
origin = null,
selector = '',
filter = null,
event_, target;
event_, target, surface;
event.of = function(thiz, argumentz) {
return function(e1) {
@@ -62,14 +62,13 @@ iD.behavior.drag = function() {
if (touchId === null) d3_eventCancel();
function point() {
var p = target.parentNode;
var p = target.parentNode || surface;
return touchId !== null ? d3.touches(p).filter(function(p) {
return p.identifier === touchId;
})[0] : d3.mouse(p);
}
function dragmove() {
if (!target.parentNode) return dragend();
var p = point(),
dx = p[0] - origin_[0],
@@ -170,5 +169,11 @@ iD.behavior.drag = function() {
return drag;
};
drag.surface = function() {
if (!arguments.length) return surface;
surface = arguments[0];
return drag;
};
return d3.rebind(drag, event, "on");
};

View File

@@ -148,6 +148,7 @@ iD.behavior.DragNode = function(context) {
var behavior = iD.behavior.drag()
.delegate("g.node, g.point, g.midpoint")
.surface(context.surface().node())
.origin(origin)
.on('start', start)
.on('move', move)