summaryrefslogtreecommitdiffstats
path: root/src/layouts/qquickgridlayoutengine.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2014-03-25 10:11:02 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-25 10:11:02 +0100
commitcc7c4ba902ae6ab3b5eba80d7075ad8d6183a7ec (patch)
tree3533a1dee0103a35e1881fe2e9c7a73f6f2d95de /src/layouts/qquickgridlayoutengine.cpp
parent76dd99c448ae69cb12a0465facc5dd743b94e624 (diff)
parentff5d39f0a8f34cdb034df703e7b2a769c945e1ed (diff)
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/layouts/qquickgridlayoutengine.cpp')
-rw-r--r--src/layouts/qquickgridlayoutengine.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/layouts/qquickgridlayoutengine.cpp b/src/layouts/qquickgridlayoutengine.cpp
index 419a81df7..09684b5d3 100644
--- a/src/layouts/qquickgridlayoutengine.cpp
+++ b/src/layouts/qquickgridlayoutengine.cpp
@@ -142,6 +142,8 @@ static inline void combineImplicitHints(QQuickLayoutAttached *info, Qt::SizeHint
explicitly or implicitly set with QQuickLayoutAttached::isExtentExplicitlySet(). This
determines if it should be used as a USER or as a HINT value.
+ Fractional size hints will be ceiled to the closest integer. This is in order to give some
+ slack when the items are snapped to the pixel grid.
| *Minimum* | *Preferred* | *Maximum* |
+----------------+----------------------+-----------------------+--------------------------+
@@ -173,12 +175,12 @@ void QQuickGridLayoutItem::effectiveSizeHints_helper(QQuickItem *item, QSizeF *c
Q_ASSERT(getter);
if (info->isExtentExplicitlySet(Qt::Horizontal, (Qt::SizeHint)i))
- cachedSizeHints[i].setWidth((info->*getter)());
+ cachedSizeHints[i].setWidth(qCeil((info->*getter)()));
getter = verGetters.call[i];
Q_ASSERT(getter);
if (info->isExtentExplicitlySet(Qt::Vertical, (Qt::SizeHint)i))
- cachedSizeHints[i].setHeight((info->*getter)());
+ cachedSizeHints[i].setHeight(qCeil((info->*getter)()));
}
}
@@ -213,9 +215,9 @@ void QQuickGridLayoutItem::effectiveSizeHints_helper(QQuickItem *item, QSizeF *c
qreal &prefWidth = prefS.rwidth();
qreal &prefHeight = prefS.rheight();
if (prefWidth < 0 && item->implicitWidth() > 0)
- prefWidth = item->implicitWidth();
+ prefWidth = qCeil(item->implicitWidth());
if (prefHeight < 0 && item->implicitHeight() > 0)
- prefHeight = item->implicitHeight();
+ prefHeight = qCeil(item->implicitHeight());
// If that fails, make an ultimate fallback to width/height