cross-client surface references

Alexander Larsson alexl at
Fri Jul 3 01:37:01 PDT 2015

I understand the ideas behind not allowing one client to access a
surface from another client. However, there are cases where we really
want one client to refer to a surface (typically a xdg_surface) from
another client.

In particular, I have a need for this in my sandboxing work. Consider a
setup where a sandboxed application wants to open a file. This will
happen by the app doing a dbus work to a "portal" which will open a
file chooser dialog outside the app, and then everything is done will
return the file contents (not pathname) to the app. In this case we
want the file chooser dialog to be parented to the proper window. Right
now there is no way to do this, as the reference to the toplevel is
client specific. 

What I would like is for some kind of opt-in request to the compositor
where I would take an existing xdg_surface reference and create a
"global" reference that i can serialize (over e.g. dbus) and restore in
another process and use as an argument for xdg_surface.set_parent().
Obviously such a reference would be limited in what it could be used
for, the other app should not be able to call any methods on it like
changing/reading contents or state.

 Alexander Larsson                                            Red Hat, Inc 
       alexl at            alexander.larsson at 
He's an oversexed skateboarding hairdresser with a winning smile and a 
way with the ladies. She's a virginal impetuous soap star with an 
incredible destiny. They fight crime! 

More information about the wayland-devel mailing list