Support for opening a popup menu in an external process
Right now, there is no good way for a taskbar to support out-of-process plugins for things like calendar widgets. xdg-foreign only works with xdg_toplevel
, and creating a popup directly doesn’t work well either because the child process has no surface to position the popup relative to. There are various ugly workarounds that can be used, such as creating a full-screen transparent window with an empty input surface and positioning the popup relative to that, but they are all abuses of protocols not intended for the purpose. layer-shell does not work well either, though one can work around this by abusing margins.
A much better solution is to create a protocol that allows creating an xdg_popup
with a parent coming from another process. This would work for all dropdown menus, regardless of how implemented.