diff options
author | Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> | 2010-04-16 08:56:38 (GMT) |
---|---|---|
committer | Samuli Piippo <samuli.piippo@digia.com> | 2011-06-09 10:05:41 (GMT) |
commit | d8adfcca25d185e7233c09711843bddfd596c657 (patch) | |
tree | c8aadd586527fc0ee9c252de2a3f5b86f9abd076 /src | |
parent | ac6313c740d2264b0c005367513050b332c8a863 (diff) | |
download | Qt-d8adfcca25d185e7233c09711843bddfd596c657.zip Qt-d8adfcca25d185e7233c09711843bddfd596c657.tar.gz Qt-d8adfcca25d185e7233c09711843bddfd596c657.tar.bz2 |
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
(cherry picked from commit fa175f7c09e6e664f347ac9804b1a7db1d997ef2)
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/widgets/qscrollarea.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/widgets/qscrollarea.cpp b/src/gui/widgets/qscrollarea.cpp index 784847a..5bdee5e 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()); } |