summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/layouts/qquickgridlayoutengine_p.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/layouts/qquickgridlayoutengine_p.h b/src/layouts/qquickgridlayoutengine_p.h
index 886dd850c..94b8677ac 100644
--- a/src/layouts/qquickgridlayoutengine_p.h
+++ b/src/layouts/qquickgridlayoutengine_p.h
@@ -55,6 +55,7 @@
#include <QtGui/private/qgridlayoutengine_p.h>
#include <QtGui/private/qlayoutpolicy_p.h>
+#include <QtCore/qmath.h>
#include "qquickitem.h"
#include "qquicklayout_p.h"
@@ -112,9 +113,10 @@ public:
void setGeometry(const QRectF &rect)
{
- const QRect r(rect.toRect());
- const QSize newSize(r.size());
- m_item->setPosition(r.topLeft());
+ const QPoint innerTopLeft(qCeil(rect.left()), qCeil(rect.top()));
+ const QPoint innerBottomRight(qFloor(rect.right()), qFloor(rect.bottom()));
+ const QSize newSize(innerBottomRight.x() - innerTopLeft.x(), innerBottomRight.y() - innerTopLeft.y());
+ m_item->setPosition(innerTopLeft);
QSizeF oldSize(m_item->width(), m_item->height());
if (newSize == oldSize) {
if (QQuickLayout *lay = qobject_cast<QQuickLayout *>(m_item))