diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp index 46cab90ab4..f124f1ed8e 100644 --- a/src/widgets/kernel/qlayout.cpp +++ b/src/widgets/kernel/qlayout.cpp @@ -576,11 +576,12 @@ void QLayoutPrivate::doResize(const QSize &r) int mbh = menuBarHeightForWidth(menubar, r.width()); QWidget *mw = q->parentWidget(); QRect rect = mw->testAttribute(Qt::WA_LayoutOnEntireRect) ? mw->rect() : mw->contentsRect(); + const int mbTop = rect.top(); rect.setTop(rect.top() + mbh); q->setGeometry(rect); #ifndef QT_NO_MENUBAR if (menubar) - menubar->setGeometry(0,0,r.width(), mbh); + menubar->setGeometry(rect.left(), mbTop, r.width(), mbh); #endif } diff --git a/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp b/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp index f2ce2d1d96..15f2f88a8d 100644 --- a/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp +++ b/tests/auto/widgets/widgets/qmainwindow/tst_qmainwindow.cpp @@ -780,6 +780,9 @@ void tst_QMainWindow::contentsMargins() mw.show(); QVERIFY(QTest::qWaitForWindowExposed(&mw)); + QCOMPARE(mw.menuBar()->geometry().left(), contentsMargin); + QCOMPARE(mw.menuBar()->geometry().top(), contentsMargin); + QCOMPARE(mw.statusBar()->geometry().left(), contentsMargin); QCOMPARE(mw.statusBar()->geometry().bottom() + 1, mw.height() - contentsMargin); }