<table><tr><td style="">graesslin created this revision.<br />graesslin added reviewers: Plasma on Wayland, hein.<br />Restricted Application added a subscriber: plasma-devel.<br />Restricted Application added a project: Plasma on Wayland.
</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/D3049" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Especially for Xwayland windows the compositor might not have a themed<br />
icon name. Resulting in a task manager not having dedicated icons for<br />
Xwayland windows.</p>

<p>This change deprecates the way how a compositor is supposed to set the<br />
window icon. Instead of passing the themed icon name, it is now supposed to<br />
pass the QIcon. In case it's a themed icon the existing way to pass to<br />
the client is used.</p>

<p>Otherwise a new event is used to inform the client that there is an icon</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">no data is transmitted at this point. The client can then create a</li>
</ul>

<p>file descriptor and pass it to the compositor. The compositor serializes<br />
the icon into the file descriptor and the client can read from it. This<br />
all happens transparently on client side there is no api change at all.</p>

<p>The writing and reading of the icon is done in a thread. Due to that<br />
Qt5::Concurrent is now a required dependency instead of an optional<br />
dependency.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWAYLAND KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>plasma-window-icon</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D3049" rel="noreferrer">https://phabricator.kde.org/D3049</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>CMakeLists.txt<br />
autotests/client/test_wayland_windowmanagement.cpp<br />
src/client/CMakeLists.txt<br />
src/client/plasmawindowmanagement.cpp<br />
src/client/protocols/plasma-window-management.xml<br />
src/client/registry.cpp<br />
src/server/CMakeLists.txt<br />
src/server/plasmawindowmanagement_interface.cpp<br />
src/server/plasmawindowmanagement_interface.h<br />
src/tools/CMakeLists.txt<br />
tests/CMakeLists.txt</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>graesslin, Plasma on Wayland, hein<br /><strong>Cc: </strong>plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas<br /></div>