Can't unconditionally delete the node; it may be a member
of other ways.
I didn't preserve the behavior of dragging a midpoint to
an adjacent node being a no-op. In general we don't try to
eliminate compound operations whose net result is a no-op;
I don't think it's important to do so for this special case.
The degenerate case of connecting the endpoints of a two-vertex
line now results in a point. This is what naturally resulted
from the code, and seems ok.
Fixes#983.
This makes the CSS more consistent and makes fixing #953
easier. Also, dragging now clears the selection and closes
any operations menu, which is good.
There's still a minor Chrome bug: it doesn't refresh the
cursor when the .behavior-hover class is removed.
From the wiki:
> If you have one closed way making up the outer ring and it does not
> describe something in its own right, you may also put these tags on
> the outer ring and leave the relation untagged.
During line and area rendering, fix up such ways so that they are
rendered as if the tags were on the relation instead.
Fixes#613.
This yields a 10x paint performance increase at
#map=18.88/38.85208/-76.72632, as measured with
Chrome Canary's "Continuous Page Repainting" mode.
Fixes#885.
Due to differenced redraw, midpoint.ways was getting stale,
so sometimes dragging a midpoint didn't add the new node to
all ways. Better to calculate participating ways when needed.
This also simplifies the code for adding a midpoint via double
click. It does make filtering midpoints on redraw a bit more
expensive, but a cursory profile didn't show it being a problem.
Fixes#763.