Apply transformations after invoking the callback

I wanted to implement my own version of snapping to grid but it ended up being too jerky because on every move FT would change the translate coordinates, apply and then my callback would snap it to where I want it to be. If instead we invoke the callback before calling apply it becomes possible to implement smoother snapping to grid.

In general this makes sense to me and solves my problem but I wanted to see if it makes sense to you.