Fix zoom to work correctly using relative coordinates