<table><tr><td style="">fvogt added a comment.
</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/D16643">View Revision</a></tr></table><br /><div><div><p>I tried to understand what this change does both by trying to reproduce the issue and reading Qt code.<br />
Here the symptom was more drags not getting accepted at all than flipping back and forth, but this patch fixes that as well.</p>

<p>What might cause confusion is that the <tt style="background: #ebebeb; font-size: 13px;">DeclarativeDropArea::enabled</tt> property is unrelated to <tt style="background: #ebebeb; font-size: 13px;">QQuickItem::enabled</tt>.<br />
If the latter is set to disabled, events don't get delivered at all (== rejected) and this should work directly (so I wonder why<br />
this has a custom property at all).</p>

<p>From what I can tell this patch actually does two independent changes:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Not actively ignoring an event if the move didn't change position (this is enough to fix my case, but apparently not for <a href="https://phabricator.kde.org/p/trmdi/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@trmdi</a>, can you clarify?)</li>
<li class="remarkup-list-item">Actively rejecting an event if the area is "disabled" or "temporarily inhibited" to prevent stealing of the event by any parent areas</li>
</ul>

<p>IMO the first change is absolutely correct - actively reejecting a move breaks the drag.</p>

<p>The second change seems to be necessary because DragMove events are considered to be accepted by the current drag target item by default.<br />
So it needs to be rejected actively if "disabled" or "inhibited". This is normally done by Qt itself for disabled items, but as this reimplements a custom<br />
enabled property it needs to be done manually.</p>

<p>I suggest to wait until Monday whether <a href="https://phabricator.kde.org/p/bruns/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@bruns</a> has something to add, but if there's no objection this can IMO be landed.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R296 KDeclarative</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D16643">https://phabricator.kde.org/D16643</a></div></div><br /><div><strong>To: </strong>trmdi, mart, broulik, Plasma, hein, bruns<br /><strong>Cc: </strong>fvogt, aacid, bruns, dkorth, ngraham, kde-frameworks-devel, michaelh<br /></div>