always update_layout before drawing