General: adapting viewport