<table><tr><td style="">graesslin created this revision.<br />graesslin added reviewers: Frameworks, KWin, Plasma.<br />Restricted Application added projects: Plasma on Wayland, Frameworks.<br />Restricted Application added a subscriber: plasma-devel.<br />graesslin requested review of this revision.<br />Restricted Application edited projects, added Plasma; removed 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/D10142" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This addresses the following situation:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">Start drag on a QtWayland based window</li>
<li class="remarkup-list-item">Press escape</li>
<li class="remarkup-list-item">Release mouse</li>
</ol>

<p>-> this results in a crash. The main reason for this is that QtWayland<br />
destroys the DataSource in step 2 and KWayland did not expect this at<br />
all. The drag and drop operation continued and results in step 3 in the<br />
drag target to request data from the no longer existing DataSource.</p>

<p>This change addresses the root of the problem by cancelling the drag<br />
operation when the DataSource gets destroyed.</p>

<p>BUG: 389221<br />
FIXED-IN: 5.43</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>New test case exposing the problem and manual testing with<br />
kwin_wayland and dolphin (based on bug report)</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R127 KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>cancel-drag-on-datasource-destroy</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D10142" rel="noreferrer">https://phabricator.kde.org/D10142</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/client/test_drag_drop.cpp<br />
src/server/datadevice_interface.cpp<br />
src/server/seat_interface.cpp<br />
src/server/seat_interface_p.h</div></div></div><br /><div><strong>To: </strong>graesslin, Frameworks, KWin, Plasma<br /><strong>Cc: </strong>plasma-devel, michaelh, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>