From fa175f7c09e6e664f347ac9804b1a7db1d997ef2 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Fri, 16 Apr 2010 10:56:38 +0200 Subject: QScrollArea: Excessive scrolling in focusNextPrevChild() We were scrolling horizontally even though the widget already fit the visible area horizontally. And conversely for vertical scrolling. Improves commit f1e92b2fdf6b6fd8aca0d05176c647dd68e21baa. Reviewed-by: Thierry Task-number: QTBUG-9425 --- src/gui/widgets/qscrollarea.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/widgets/qscrollarea.cpp b/src/gui/widgets/qscrollarea.cpp index 6b81d9f..38e799e 100644 --- a/src/gui/widgets/qscrollarea.cpp +++ b/src/gui/widgets/qscrollarea.cpp @@ -482,14 +482,14 @@ void QScrollArea::ensureWidgetVisible(QWidget *childWidget, int xmargin, int yma d->hbar->setValue(focusRect.center().x() - d->viewport->width() / 2); else if (focusRect.right() > visibleRect.right()) d->hbar->setValue(focusRect.right() - d->viewport->width()); - else + else if (focusRect.left() < visibleRect.left()) d->hbar->setValue(focusRect.left()); if (focusRect.height() > visibleRect.height()) d->vbar->setValue(focusRect.center().y() - d->viewport->height() / 2); else if (focusRect.bottom() > visibleRect.bottom()) d->vbar->setValue(focusRect.bottom() - d->viewport->height()); - else + else if (focusRect.top() < visibleRect.top()) d->vbar->setValue(focusRect.top()); } -- cgit v0.12