if (NULL != next[0]
&& (next[0]->getEntry() - widget->getEntry()).y() > 0
&& (next[0]->getEntry() - out).y() < 50) {
- next[0]->moveBy(0, 1);
+ widget->moveBy(0, -1);
changed = true;
- }
- if (NULL != next[1]
+ } else if (NULL != next[1]
&& (next[1]->getEntry() - widget->getEntry()).y() > 0
&& (next[1]->getEntry() - out).y() < 50) {
- next[1]->moveBy(0, 1);
+ widget->moveBy(0, -1);
changed = true;
}
}
relevantRect.adjust(-20, -20, 20, 20);
for (QGraphicsItem * item : items(relevantRect)) {
if (item == widget) continue;
+ if (std::find(widgets.begin(), widgets.end(), item) == widgets.end()) continue;
QRectF itemrect = item->boundingRect();
itemrect.moveTo(item->scenePos());
while (relevantRect.intersects(itemrect)) {