Fix shift when zooming on x and y axis

Still some issues
- shift on 2D still creates the problem
- unzoom still creates a shift