move signal update out of loop so that it always fires not just when the caption is visible