recreate ranges & rects when string changed