| 337 | | } else if (ctrl) { |
| 338 | | Collection<OsmPrimitive> selection = Main.ds.getSelected(); |
| 339 | | Collection<Node> affectedNodes = AllNodesVisitor.getAllNodes(selection); |
| 340 | | Collection<Node> nn = Main.map.mapView.getNearestNodes(e.getPoint(), affectedNodes); |
| 341 | | if (nn != null) { |
| 342 | | Node n = nn.iterator().next(); |
| 343 | | LinkedList<Node> selNodes = new LinkedList<Node>(); |
| 344 | | for (OsmPrimitive osm : selection) |
| 345 | | if (osm instanceof Node) |
| 346 | | selNodes.add((Node)osm); |
| 347 | | if (selNodes.size() > 0) { |
| 348 | | selNodes.add(n); |
| 349 | | MergeNodesAction.mergeNodes(selNodes, n); |
| 350 | | } |
| 351 | | } |
| | 338 | } else { |
| | 339 | Collection<OsmPrimitive> selection = Main.ds.getSelected(); |
| | 340 | if (ctrl) { |
| | 341 | Collection<Node> affectedNodes = AllNodesVisitor.getAllNodes(selection); |
| | 342 | Collection<Node> nn = Main.map.mapView.getNearestNodes(e.getPoint(), affectedNodes); |
| | 343 | if (nn != null) { |
| | 344 | Node n = nn.iterator().next(); |
| | 345 | LinkedList<Node> selNodes = new LinkedList<Node>(); |
| | 346 | for (OsmPrimitive osm : selection) |
| | 347 | if (osm instanceof Node) |
| | 348 | selNodes.add((Node)osm); |
| | 349 | if (selNodes.size() > 0) { |
| | 350 | selNodes.add(n); |
| | 351 | MergeNodesAction.mergeNodes(selNodes, n); |
| | 352 | } |
| | 353 | } |
| | 354 | } |
| | 355 | DataSet.fireSelectionChanged(selection); |