Now we have it: don't update the whole viewport, and be safe when drawing, so there are not parts forgetting to be updated

svn path=/trunk/KDE/kdebase/apps/; revision=750990
This commit is contained in:
Rafael Fernández López 2007-12-20 20:17:43 +00:00
parent c9509654ba
commit 15bf954906

View file

@ -1040,7 +1040,8 @@ void KCategorizedView::mouseMoveEvent(QMouseEvent *event)
end = d->mousePosition;
}
rect = QRect(start, end).intersected(viewport()->rect().adjusted(-16, -16, 16, 16));
rect = QRect(start, end).adjusted(-16, -16, 16, 16);
rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
viewport()->update(rect);
}
@ -1112,6 +1113,34 @@ void KCategorizedView::mouseReleaseEvent(QMouseEvent *event)
}
}
QRect rect;
if (!d->isDragging)
{
QPoint start, end, initialPressPosition;
initialPressPosition = d->initialPressPosition;
initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
if (d->initialPressPosition.x() > d->mousePosition.x() ||
d->initialPressPosition.y() > d->mousePosition.y())
{
start = d->mousePosition;
end = initialPressPosition;
}
else
{
start = initialPressPosition;
end = d->mousePosition;
}
rect = QRect(start, end).adjusted(-16, -16, 16, 16);
rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
viewport()->update(rect);
}
if (d->hovered.isValid())
viewport()->update(visualRect(d->hovered));
else if (!d->hoveredCategory.isEmpty())