So what's the reasoning of doing this here rather than in the invoker? This seems to require us to communicate some weird information about the caller (e.g., the prefix screen rect) to a completely separate component. Why not do the math on where to present it in the caller and pass in a point and a position (above/below). If the position is above, the point would be the bottom left of the completion window; if below, the point would be the top left.