This is meant to make it easier for toolkits to provide interoperability measures between xdg_popup surfaces and non xdg_surface popup parents, e.g. layer_surface_v1.
The existing mechanism to specify the parent surface using "some other protocol" breaks encapsulation as creating a child window requires actions to be performed on the parent window, requiring client code for the child popup window to be aware of the parent types.
Even if that is papered out, we will end up with divergent code paths for presenting popups in toolkits, which breaks encapsulation and becomes major blocker for shipping out-of-tree custom shell plugins.
Signed-off-by: Vlad Zahorodnii firstname.lastname@example.org