Ticket #6367: undo_crash.patch
| File undo_crash.patch, 1.7 KB (added by , 15 years ago) |
|---|
-
src/org/openstreetmap/josm/actions/FollowLineAction.java
37 37 "followline.png", 38 38 tr("Continues drawing a line that shares nodes with another line."), 39 39 Shortcut.registerShortcut("tools:followline", tr( 40 "Tool: {0}", tr("Follow")),41 KeyEvent.VK_F, Shortcut.GROUP_EDIT), true);40 "Tool: {0}", tr("Follow")), 41 KeyEvent.VK_F, Shortcut.GROUP_EDIT), true); 42 42 } 43 43 44 44 @Override … … 61 61 if (osmLayer == null) 62 62 return; 63 63 if (!(Main.map.mapMode instanceof DrawAction)) return; // We are not on draw mode 64 64 65 65 Collection<Node> selectedPoints = osmLayer.data.getSelectedNodes(); 66 66 Collection<Way> selectedLines = osmLayer.data.getSelectedWays(); 67 67 if ((selectedPoints.size() > 1) || (selectedLines.size() != 1)) // Unsuitable selection 68 68 return; 69 69 70 70 Node last = ((DrawAction) Main.map.mapMode).getCurrentBaseNode(); 71 if (last == null) return; // This may occur after undo 71 72 Way follower = selectedLines.iterator().next(); 72 73 Node prev = follower.getNode(1); 73 74 boolean reversed = true; … … 77 78 } 78 79 List<OsmPrimitive> referrers = last.getReferrers(); 79 80 if (referrers.size() < 2) return; // There's nothing to follow 80 81 81 82 Iterator<OsmPrimitive> i = referrers.iterator(); 82 83 while (i.hasNext()) { 83 84 OsmPrimitive referrer = i.next();
