diff options
-rw-r--r-- | src/quicktemplates2/qquickscrollbar.cpp | 4 | ||||
-rw-r--r-- | src/quicktemplates2/qquickscrollindicator.cpp | 4 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_scrollbar.qml | 14 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_scrollindicator.qml | 14 |
4 files changed, 32 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp index 196ee5ed..5f26814d 100644 --- a/src/quicktemplates2/qquickscrollbar.cpp +++ b/src/quicktemplates2/qquickscrollbar.cpp @@ -481,11 +481,11 @@ void QQuickScrollBarAttachedPrivate::itemGeometryChanged(QQuickItem *item, const Q_UNUSED(item); Q_UNUSED(change); if (horizontal && horizontal->height() > 0) { - bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height()); + bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height() - horizontal->height()); layoutHorizontal(move); } if (vertical && vertical->width() > 0) { - bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width()); + bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width() - vertical->width()); layoutVertical(move); } } diff --git a/src/quicktemplates2/qquickscrollindicator.cpp b/src/quicktemplates2/qquickscrollindicator.cpp index 85d9312e..acb8dd46 100644 --- a/src/quicktemplates2/qquickscrollindicator.cpp +++ b/src/quicktemplates2/qquickscrollindicator.cpp @@ -281,11 +281,11 @@ void QQuickScrollIndicatorAttachedPrivate::itemGeometryChanged(QQuickItem *item, Q_UNUSED(item); Q_UNUSED(change); if (horizontal && horizontal->height() > 0) { - bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height()); + bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height() - horizontal->height()); layoutHorizontal(move); } if (vertical && vertical->width() > 0) { - bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width()); + bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width() - vertical->width()); layoutVertical(move); } } diff --git a/tests/auto/controls/data/tst_scrollbar.qml b/tests/auto/controls/data/tst_scrollbar.qml index b05e1159..643dbe33 100644 --- a/tests/auto/controls/data/tst_scrollbar.qml +++ b/tests/auto/controls/data/tst_scrollbar.qml @@ -107,6 +107,13 @@ TestCase { compare(vertical.y, 0) verify(vertical.width > 0) compare(vertical.height, container.height) + // vertical scroll bar follows flickable's width + container.width += 10 + compare(vertical.x, container.width - vertical.width) + // ...unless explicitly positioned + vertical.x = 123 + container.width += 10 + compare(vertical.x, 123) var horizontal = scrollBar.createObject() verify(!horizontal.parent) @@ -128,6 +135,13 @@ TestCase { compare(horizontal.y, container.height - horizontal.height) compare(horizontal.width, container.width) verify(horizontal.height > 0) + // horizontal scroll bar follows flickable's height + container.height += 10 + compare(horizontal.y, container.height - horizontal.height) + // ...unless explicitly positioned + horizontal.y = 123 + container.height += 10 + compare(horizontal.y, 123) var velocity = container.maximumFlickVelocity diff --git a/tests/auto/controls/data/tst_scrollindicator.qml b/tests/auto/controls/data/tst_scrollindicator.qml index 69a57af0..00730bf4 100644 --- a/tests/auto/controls/data/tst_scrollindicator.qml +++ b/tests/auto/controls/data/tst_scrollindicator.qml @@ -92,6 +92,13 @@ TestCase { compare(vertical.y, 0) verify(vertical.width > 0) compare(vertical.height, container.height) + // vertical scroll indicator follows flickable's width + container.width += 10 + compare(vertical.x, container.width - vertical.width) + // ...unless explicitly positioned + vertical.x = 123 + container.width += 10 + compare(vertical.x, 123) var horizontal = scrollIndicator.createObject() verify(!horizontal.parent) @@ -113,6 +120,13 @@ TestCase { compare(horizontal.y, container.height - horizontal.height) compare(horizontal.width, container.width) verify(horizontal.height > 0) + // horizontal scroll indicator follows flickable's height + container.height += 10 + compare(horizontal.y, container.height - horizontal.height) + // ...unless explicitly positioned + horizontal.y = 123 + container.height += 10 + compare(horizontal.y, 123) var velocity = container.maximumFlickVelocity |