<table><tr><td style="">mart created this revision.<br />Restricted Application added projects: Plasma on Wayland, Frameworks.<br />Restricted Application added subscribers: Frameworks, plasma-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7369" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Implement the "foreign" wayland protocol.<br />
A client can export a surface with an unique string as handle,<br />
then another client can refer to that surface and set an own surface as<br />
child of that surface.<br />
Potential use cases are out-of-process dialogs, such as file dialogs,<br />
meant to be used by sandboxed processes that may not have the access<br />
it needs to implement such dialogs.<br />
The handle needs to be shared between the processes with other means,<br />
such as dbus or command line paramenters</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>the autotest works, but has a lot of random crashes when deleting surfaces,<br />
unfortunately backtraces don't tell much and the crashes never occur when running into valgrind<br />
behavior may still be wrong, depending on how the protocol is supposed<br />
to work if more clients try to set the same exported surface as parent</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R127 KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>mart/xdgforeign</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7369" rel="noreferrer">https://phabricator.kde.org/D7369</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/client/CMakeLists.txt<br />
autotests/client/test_xdg_foreign.cpp<br />
src/client/CMakeLists.txt<br />
src/client/protocols/xdg-foreign-unstable-v1.xml<br />
src/client/registry.cpp<br />
src/client/registry.h<br />
src/client/xdgforeign_v1.cpp<br />
src/client/xdgforeign_v1.h<br />
src/server/CMakeLists.txt<br />
src/server/display.cpp<br />
src/server/display.h<br />
src/server/xdgforeign_v1_interface.cpp<br />
src/server/xdgforeign_v1_interface.h<br />
src/server/xdgforeign_v1_interface_p.h</div></div></div><br /><div><strong>To: </strong>mart, Plasma, KWin<br /><strong>Cc: </strong>plasma-devel, Frameworks, leezu, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, eliasp, sebas, apol, mart, hein, lukas<br /></div>