Ticket #1788: SelectionList-Update.patch

File SelectionList-Update.patch, 2.1 KB (added by robome@…, 17 years ago)

Patch to update selection list on releasing mouse button

  • src/org/openstreetmap/josm/actions/mapmode/SelectAction.java

     
    2424import org.openstreetmap.josm.command.RotateCommand;
    2525import org.openstreetmap.josm.command.SequenceCommand;
    2626import org.openstreetmap.josm.data.coor.EastNorth;
     27import org.openstreetmap.josm.data.osm.DataSet;
    2728import org.openstreetmap.josm.data.osm.Node;
    2829import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2930import org.openstreetmap.josm.data.osm.Way;
     
    334335                                selectPrims(
    335336                                        Main.map.mapView.getNearestCollection(e.getPoint()),
    336337                                        shift, ctrl);
    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);
    352356                        }
    353357                }
    354358