GUI ImageView should really call update_layout() when setting a new image, since get_preferred size uses the image size