Fix some issues with edgescroll.

* It could start on timerevent, rather than a mouse event.
* It could get the wrong edge_last_st, leading to large jumps.