<div>graesslin created this revision.<br />
graesslin added a reviewer: Plasma.<br />
Restricted Application added a project: Plasma.<br />
Restricted Application added a subscriber: plasma-devel.</div><br /><div><strong>REVISION SUMMARY</strong><div><p>Toplevel::window() is the actual X11 window. This makes it difficult<br />
to use as the generic identifier for both X11 and Wayland. The Wayland<br />
ShellClient already had a windowId() which is now added to Toplevel as<br />
a virtual method. On X11 (Toplevel default) it returns the window().</p>
<p>The method window() now returns XCB_WINDOW_NONE for classes without<br />
the Toplevel::m_client, such as ShellClient. Thus it allows to properly<br />
check whether we are on Wayland or X11.</p>
<p>The code is adjusted to use windowId where a generic id is needed and<br />
to properly check whether the window is valid before using it where<br />
a window() is used.</p>
<p>This also fixes at least one additional unknown issue in<br />
Workspace::setActiveClient</p>
<p>where the windowId of a Wayland client was passed to X11.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWIN KWin</div></div></div><br /><div><strong>BRANCH</strong><div><div>split-window-and-windowId</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D1527" rel="noreferrer">https://phabricator.kde.org/D1527</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>decorations/decoratedclient.cpp<br />
effects.cpp<br />
shadow.cpp<br />
shell_client.cpp<br />
shell_client.h<br />
tabbox/tabbox.cpp<br />
thumbnailitem.cpp<br />
toplevel.cpp<br />
toplevel.h<br />
useractions.cpp</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<br /><strong>Cc: </strong>plasma-devel, sebas<br /></div>