mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 01:02:58 +00:00
Don't end drag when parent removed
This commit is contained in:
@@ -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");
|
||||
};
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user