fix default camera, add listener for projection change