Changeset 2310 in josm


Ignore:
Timestamp:
2009-10-25T12:54:19+01:00 (13 years ago)
Author:
Gubaer
Message:

fixed #3755: ctrl+drop node merging doesn't use destination node coords

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

    r2112 r2310  
    1515import java.util.Collection;
    1616import java.util.Collections;
     17import java.util.HashSet;
    1718import java.util.LinkedList;
    1819import java.util.List;
     
    4445import org.openstreetmap.josm.gui.SelectionManager;
    4546import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
    46 import org.openstreetmap.josm.gui.dialogs.LayerListDialog.MergeAction;
    4747import org.openstreetmap.josm.gui.layer.Layer;
    4848import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     
    487487                }
    488488                if (ctrl) {
    489                     Collection<Node> affectedNodes = AllNodesVisitor.getAllNodes(selection);
     489                    Collection<Node> affectedNodes = OsmPrimitive.getFilteredSet(selection, Node.class);
    490490                    Collection<Node> nn = Main.map.mapView.getNearestNodes(e.getPoint(), affectedNodes);
    491491                    if (nn != null) {
    492                         Node n = nn.iterator().next();
    493                         Set<Node> selectedNodes = OsmPrimitive.getFilteredSet(selection, Node.class);
    494                         if (!selectedNodes.isEmpty()) {
    495                             selectedNodes.add(n);
    496                             Node targetNode = MergeNodesAction.selectTargetNode(selectedNodes);
    497                             Command cmd = MergeNodesAction.mergeNodes(Main.main.getEditLayer(),selectedNodes, targetNode);
     492                        Node targetNode = nn.iterator().next();
     493                        Set<Node> nodesToMerge = new HashSet<Node>(affectedNodes);
     494                        nodesToMerge.add(targetNode);
     495                        if (!nodesToMerge.isEmpty()) {
     496                            Command cmd = MergeNodesAction.mergeNodes(Main.main.getEditLayer(),nodesToMerge, targetNode);
    498497                            Main.main.undoRedo.add(cmd);
    499498                        }
Note: See TracChangeset for help on using the changeset viewer.