Maybe set_geometry should be called instead? Might make sense once the "set failed; don't send an event" branch lands.