move zoom/pan routine in Canvas class, enable pan limits