Fix order of vertex in _assign, always get latest entity

(selected or hovered entities are old, if we're moving vertices around)
This commit is contained in:
Bryan Housel
2017-12-15 21:21:48 -05:00
parent 6644c9db6b
commit ba7437b4cc
2 changed files with 8 additions and 8 deletions
+1 -1
View File
@@ -249,7 +249,7 @@ export function modeDragNode(context) {
var behavior = behaviorDrag()
.selector('g.node, g.midpoint')
.selector('.vertex.target, g.point, g.midpoint')
.surface(d3_select('#map').node())
.origin(origin)
.on('start', start)
+7 -7
View File
@@ -284,7 +284,7 @@ export function svgVertices(projection, context) {
hovered: _currHover // hovered + siblings of hovered (render only in draw modes)
};
var all = _assign({}, _currPersistent, _currSelected, (isDrawing ? _currHover : {}));
var all = _assign({}, (isDrawing ? _currHover : {}), _currSelected, _currPersistent);
// Draw the vertices..
// The filter function controls the scope of what objects d3 will touch (exit/enter/update)
@@ -293,17 +293,17 @@ export function svgVertices(projection, context) {
return d.id in _currPersistent || d.id in _currSelected || d.id in _currHover || filter(d);
};
selection.selectAll('.layer-points .layer-points-vertices')
.call(draw, graph, visible(all), sets, filterRendered);
.call(draw, graph, currentVisible(all), sets, filterRendered);
// Draw touch targets..
selection.selectAll('.layer-points .layer-points-targets')
.call(drawTargets, graph, visible(all), filterRendered);
.call(drawTargets, graph, currentVisible(all), filterRendered);
function visible(which) {
return _values(which).filter(function (entity) {
return entity.intersects(extent, graph);
});
function currentVisible(which) {
return Object.keys(which)
.map(context.hasEntity) // the current version of this entity
.filter(function (entity) { return entity && entity.intersects(extent, graph); });
}
}