Fix popup placement.

Pass a parent surface for the popup, and have the position relative
to that.