<table><tr><td style="">bruns 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>As fvogt already said, the current (old) code is wrong, the event should not be blindly ignored (line 97).</p>

<p>The second change fvogt mentioned is IMHO handled quite strangely here - <tt style="background: #ebebeb; font-size: 13px;">!m_enabled || m_temporaryInhibition</tt> is the inverse of <tt style="background: #ebebeb; font-size: 13px;">!m_enabled || m_temporaryInhibition</tt>, so doing a <tt style="background: #ebebeb; font-size: 13px;">event->ignore()</tt> === <tt style="background: #ebebeb; font-size: 13px;">event->setAccepted(false)</tt> prior to the first return statement would cover the ignored case, and allows the event to bubble up.</p>

<p>This leaves the cases where the area is neither disabled nor inhibited. For large moves (pos() changed >= 1.0 pixels), the event is accepted, and the event is delivered to the quick item, where it can be left as is (accepted), or reset to ignored by the code.</p>

<p>Why is a small move handled differently? Shouldn't the <tt style="background: #ebebeb; font-size: 13px;">if (event->pos() == oldDragMovePos)</tt> code path be removed completely?</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>