Ignore:
Timestamp:
2015-11-04T19:44:01+01:00 (4 years ago)
Author:
simon04
Message:

fix #12052 - Splitting a self intersecting way does not highlight the right segments

File:
1 edited

Legend:

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

    r8988 r8990  
    4848import org.openstreetmap.josm.tools.GBC;
    4949import org.openstreetmap.josm.tools.Shortcut;
    50 import org.openstreetmap.josm.tools.Utils;
    5150
    5251/**
     
    248247                public void valueChanged(ListSelectionEvent e) {
    249248                    final Way selected = list.getSelectedValue();
    250                     if (Main.isDisplayingMapView() && selected != null) {
    251                         final List<WaySegment> segments = Utils.transform(selected.getNodes().subList(0, selected.getNodesCount() - 1),
    252                                 new Utils.Function<Node, WaySegment>() {
    253                             @Override
    254                             public WaySegment apply(Node x) {
    255                                 return new WaySegment(selectedWay, selectedWay.getNodes().indexOf(x));
    256                             }
    257                         });
     249                    if (Main.isDisplayingMapView() && selected != null && selected.getNodesCount() > 1) {
     250                        final Collection<WaySegment> segments = new ArrayList<>(selected.getNodesCount() - 1);
     251                        final Iterator<Node> it = selected.getNodes().iterator();
     252                        Node previousNode = it.next();
     253                        while (it.hasNext()) {
     254                            final Node node = it.next();
     255                            segments.add(WaySegment.forNodePair(selectedWay, previousNode, node));
     256                            previousNode = node;
     257                        }
    258258                        setHighlightedWaySegments(segments);
    259259                    }
Note: See TracChangeset for help on using the changeset viewer.