Ticket #1788: SelectionList-Update.patch

File SelectionList-Update.patch, 2.1 KB (added by robome@…, 4 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