diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-02-08 17:26:47 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-11 15:17:07 +0100 |
commit | d180560e148722071f30fbbbfcdce01b01ba8cdf (patch) | |
tree | e0d35b92262b140e9bbf495f7e448f6cce46f95f | |
parent | c927d6b9e161ee22822dbfb0654f5734c9101aa7 (diff) |
Fix QWindow::setFramePosition() to keep the size.
Change-Id: I14551e0d0573c2e8d86d76eadab4df9f3c8ed5e4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
-rw-r--r-- | src/gui/kernel/qwindow.cpp | 2 | ||||
-rw-r--r-- | tests/auto/gui/kernel/qwindow/tst_qwindow.cpp | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index db19aa9366..2fcad5706f 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -1186,7 +1186,7 @@ void QWindow::setFramePosition(const QPoint &point) if (d->platformWindow) { d->platformWindow->setGeometry(QRect(point, size())); } else { - d->geometry.setTopLeft(point); + d->geometry.moveTopLeft(point); } } diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp index 8c5432e746..30666aaf2a 100644 --- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp +++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp @@ -173,9 +173,13 @@ void tst_QWindow::positioning() // Some platforms enforce minimum widths for windows, which can cause extra resize // events, so set the width to suitably large value to avoid those. - QRect geometry(80, 80, 300, 40); + const QSize size = QSize(300, 40); + const QRect geometry(QPoint(80, 80), size); Window window; + window.setGeometry(QRect(QPoint(20, 20), size)); + window.setFramePosition(QPoint(40, 40)); // Move window around before show, size must not change. + QCOMPARE(window.geometry().size(), size); window.setGeometry(geometry); QCOMPARE(window.geometry(), geometry); window.show(); |