* Options should be remembered via SharedObjects
* small node hitzone when creating areas - hitzone and mouseover UI don't match up
* backspaceNode leaves junctions on other ways highlighted
-* Unexpected number of undo actions (3) when undoing drawway after adding a junction
* GPS loading should have a loading... label
* Pressing undo/redo sometimes doesn't change controllerstate. (e.g. create POI + undo leaves the tag panel still referring to POI)
* Resizing window doesn't update Yahoo, until map is panned.
if ( event.type == MouseEvent.MOUSE_UP ) {
if ( entity == null || isBackground ) {
- node = createAndAddNode(event);
+ node = createAndAddNode(event, MainUndoStack.getGlobalStack().addAction);
+ controller.map.setHighlight(node, { selectedway: true });
+ controller.map.setPurgable(node, false);
resetElastic(node);
lastClick=node;
} else if ( entity is Node ) {
appendNode(node,undo.push);
MainUndoStack.getGlobalStack().addAction(undo);
} else {
- // add junction node - another way
- node = createAndAddNode(event);
- Way(entity).insertNodeAtClosestPosition(node, true,
- MainUndoStack.getGlobalStack().addAction);
+ // add junction node - another way
+ var jnct:CompositeUndoableAction = new CompositeUndoableAction("Junction Node");
+ node = createAndAddNode(event, jnct.push);
+ Way(entity).insertNodeAtClosestPosition(node, true, jnct.push);
+ MainUndoStack.getGlobalStack().addAction(jnct);
+ controller.map.setHighlight(node, { selectedway: true });
+ controller.map.setPurgable(node, false);
}
resetElastic(node);
lastClick=node;
return this;
}
- public function createAndAddNode(event:MouseEvent):Node {
+ public function createAndAddNode(event:MouseEvent, performAction:Function):Node {
var undo:CompositeUndoableAction = new CompositeUndoableAction("Add node");
var lat:Number = controller.map.coord2lat(event.localY);
var node:Node = controller.connection.createNode({}, lat, lon, undo.push);
appendNode(node, undo.push);
- MainUndoStack.getGlobalStack().addAction(undo);
- controller.map.setHighlight(node, { selectedway: true });
- controller.map.setPurgable(node, false);
+ performAction(undo);
return node;
}