improvement: use OffscreenWindow damage_event