summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp2
-rw-r--r--tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp33
2 files changed, 34 insertions, 1 deletions
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index 8f8642a72a..827e2ed2ba 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1440,7 +1440,7 @@ void QMainWindowLayout::setGeometry(const QRect &_r)
QLayout::setGeometry(r);
if (statusbar) {
- QRect sbr(QPoint(0, 0),
+ QRect sbr(QPoint(r.left(), 0),
QSize(r.width(), statusbar->heightForWidth(r.width()))
.expandedTo(statusbar->minimumSize()));
sbr.moveBottom(r.bottom());
diff --git a/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp b/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp
index 751a16c59d..f2ce2d1d96 100644
--- a/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp
+++ b/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp
@@ -46,6 +46,7 @@
#include <qlabel.h>
#include <qtextedit.h>
#include <qstylehints.h>
+#include <qdesktopwidget.h>
#include <private/qmainwindowlayout_p.h>
#include <private/qdockarealayout_p.h>
@@ -132,6 +133,8 @@ private slots:
void saveRestore_data();
void statusBar();
#endif
+ void contentsMargins_data();
+ void contentsMargins();
void isSeparator();
#ifndef QTEST_NO_CURSOR
void setCursor();
@@ -749,8 +752,38 @@ void tst_QMainWindow::statusBar()
QVERIFY(indexOfSb == -1);
}
}
+
#endif
+void tst_QMainWindow::contentsMargins_data()
+{
+ QTest::addColumn<int>("contentsMargin");
+ QTest::newRow("0") << 0;
+ QTest::newRow("10") << 10;
+}
+
+void tst_QMainWindow::contentsMargins()
+{
+ QFETCH(int, contentsMargin);
+
+ QMainWindow mw;
+ const QRect availGeometry = QApplication::desktop()->availableGeometry();
+ mw.menuBar()->addMenu("File");
+ mw.setWindowTitle(QLatin1String(QTest::currentTestFunction())
+ + QLatin1Char(' ') + QLatin1String(QTest::currentDataTag()));
+ mw.resize(availGeometry.size() / 4);
+ mw.move((availGeometry.width() - mw.width()) / 2,
+ (availGeometry.height() - mw.height()) / 2);
+ mw.setContentsMargins(contentsMargin, contentsMargin, contentsMargin, contentsMargin);
+ mw.statusBar()->showMessage("Hello");
+
+ mw.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&mw));
+
+ QCOMPARE(mw.statusBar()->geometry().left(), contentsMargin);
+ QCOMPARE(mw.statusBar()->geometry().bottom() + 1, mw.height() - contentsMargin);
+}
+
void tst_QMainWindow::centralWidget()
{
{