core: emit `reposition` event