<table><tr><td style="">graesslin created this revision.<br />graesslin added reviewers: KWin, Plasma.<br />Restricted Application added a project: KWin.<br />Restricted Application added subscribers: kwin, 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/D3363" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>A new virtual method is added to Platform:<br />
startInteractiveWindowSelection</p>

<p>The interactive window selection enters a mode where the user can select<br />
a window through the pointer or keyboard device. The cursor is turned<br />
into a crosshair cursor, unless another cursor name is provided (e.g.<br />
pirate for kill window).</p>

<p>Once a window is selected the provided callback method is invoked with<br />
the selected Toplevel as argument. In case the user cancelled the<br />
selection a nullptr argument is passed in.</p>

<p>Currently it's only implemented by the X11 standalone platform using the<br />
logic from KillWindow. Just instead of killing the window the callback<br />
is invoked.</p>

<p>KillWindow loses the X11 implementation and interacts with the new<br />
functionality in Platform by providing a lambda function for the<br />
killing.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Killing of X11 windows is still possible</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKWIN KWin</div></div></div><br /><div><strong>BRANCH</strong><div><div>interactive-window-selection</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D3363" rel="noreferrer">https://phabricator.kde.org/D3363</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>killwindow.cpp<br />
killwindow.h<br />
platform.cpp<br />
platform.h<br />
plugins/platforms/x11/standalone/CMakeLists.txt<br />
plugins/platforms/x11/standalone/windowselector.cpp<br />
plugins/platforms/x11/standalone/windowselector.h<br />
plugins/platforms/x11/standalone/x11_platform.cpp<br />
plugins/platforms/x11/standalone/x11_platform.h<br />
utils.h</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, KWin, Plasma<br /><strong>Cc: </strong>plasma-devel, kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas<br /></div>