bruns added a comment.

  As fvogt already said, the current (old) code is wrong, the event should not 
be blindly ignored (line 97).
  
  The second change fvogt mentioned is IMHO handled quite strangely here - 
`!m_enabled || m_temporaryInhibition` is the inverse of `!m_enabled || 
m_temporaryInhibition`, so doing a `event->ignore()` === 
`event->setAccepted(false)` prior to the first return statement would cover the 
ignored case, and allows the event to bubble up.
  
  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.
  
  Why is a small move handled differently? Shouldn't the `if (event->pos() == 
oldDragMovePos)` code path be removed completely?

REPOSITORY
  R296 KDeclarative

REVISION DETAIL
  https://phabricator.kde.org/D16643

To: trmdi, mart, broulik, #plasma, hein, bruns
Cc: fvogt, aacid, bruns, dkorth, ngraham, kde-frameworks-devel, michaelh

Reply via email to