Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/UINativeWizard.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/UINativeWizard.cpp	(revision 90024)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/UINativeWizard.cpp	(revision 90032)
@@ -97,7 +97,6 @@
     , m_iLastIndex(-1)
     , m_pLabelPixmap(0)
-#ifdef VBOX_WS_MAC
+    , m_pLayoutRight(0)
     , m_pLabelPageTitle(0)
-#endif
     , m_pWidgetStack(0)
 {
@@ -233,7 +232,5 @@
     UINativeWizardPage *pPage = qobject_cast<UINativeWizardPage*>(m_pWidgetStack->widget(iIndex));
     AssertPtrReturnVoid(pPage);
-#ifdef VBOX_WS_MAC
     m_pLabelPageTitle->setText(pPage->title());
-#endif
     if (iIndex > m_iLastIndex)
         pPage->initializePage();
@@ -345,8 +342,7 @@
             }
 
-#ifdef VBOX_WS_MAC
-            /* Prepare right layout on macOS for nativity purposes: */
-            QVBoxLayout *pLayoutRight = new QVBoxLayout;
-            if (pLayoutRight)
+            /* Prepare right layout: */
+            m_pLayoutRight = new QVBoxLayout;
+            if (m_pLayoutRight)
             {
                 /* Prepare page title label: */
@@ -360,7 +356,8 @@
                     m_pLabelPageTitle->setFont(labelFont);
 
-                    pLayoutRight->addWidget(m_pLabelPageTitle);
+                    m_pLayoutRight->addWidget(m_pLabelPageTitle);
                 }
 
+#ifdef VBOX_WS_MAC
                 /* Prepare frame around widget-stack on macOS for nativity purposes: */
                 UIFrame *pFrame = new UIFrame(this);
@@ -381,19 +378,19 @@
 
                     /* Add to layout: */
-                    pLayoutRight->addWidget(pFrame);
+                    m_pLayoutRight->addWidget(pFrame);
                 }
+#else /* !VBOX_WS_MAC */
+                /* Prepare widget-stack directly on other platforms: */
+                m_pWidgetStack = new QStackedWidget(this);
+                if (m_pWidgetStack)
+                {
+                    connect(m_pWidgetStack, &QStackedWidget::currentChanged, this, &UINativeWizard::sltCurrentIndexChanged);
+                    m_pLayoutRight->addWidget(m_pWidgetStack);
+                }
+#endif /* !VBOX_WS_MAC */
 
                 /* Add to layout: */
-                pLayoutUpper->addLayout(pLayoutRight);
+                pLayoutUpper->addLayout(m_pLayoutRight);
             }
-#else /* !VBOX_WS_MAC */
-            /* Prepare widget-stack directly on other platforms: */
-            m_pWidgetStack = new QStackedWidget(this);
-            if (m_pWidgetStack)
-            {
-                connect(m_pWidgetStack, &QStackedWidget::currentChanged, this, &UINativeWizard::sltCurrentIndexChanged);
-                pLayoutUpper->addWidget(m_pWidgetStack);
-            }
-#endif /* !VBOX_WS_MAC */
 
             /* Add to layout: */
@@ -504,8 +501,12 @@
 void UINativeWizard::resizeToGoldenRatio()
 {
-#ifdef VBOX_WS_MAC
-    /* Hide/show title label on macOS only, on Windows/X11 there is no title label. */
+    /* Standard top margin for Basic mode case: */
+    const int iT = m_enmMode == WizardMode_Basic
+                 ? qApp->style()->pixelMetric(QStyle::PM_LayoutTopMargin)
+                 : 0;
+    m_pLayoutRight->setContentsMargins(0, iT, 0, 0);
+    /* Show title label for Basic mode case: */
     m_pLabelPageTitle->setVisible(m_enmMode == WizardMode_Basic);
-#else
+#ifndef VBOX_WS_MAC
     /* Hide/show pixmap label on Windows/X11 only, on macOS it's in the background: */
     m_pLabelPixmap->setVisible(!m_strPixmapName.isEmpty() && m_enmMode == WizardMode_Basic);
@@ -542,4 +543,13 @@
             if (!m_strPixmapName.isEmpty())
                 iWidth += 145;
+            /* Advance height for spacing & title height: */
+            if (m_pLayoutRight)
+            {
+                int iL, iT, iR, iB;
+                m_pLayoutRight->getContentsMargins(&iL, &iT, &iR, &iB);
+                iHeight += iT + m_pLayoutRight->spacing() + iB;
+            }
+            if (m_pLabelPageTitle)
+                iHeight += m_pLabelPageTitle->minimumSizeHint().height();
 #endif /* !VBOX_WS_MAC */
             const double dRatio = (double)iWidth / iHeight;
@@ -607,6 +617,11 @@
     const QRgb rgbFrame = imageOld.pixel(imageOld.width() - 1, 0);
 
-    /* Upscale desired height up to pixmap device pixel ratio: */
-    const int iDesiredHeight = m_pWidgetStack->minimumSizeHint().height() * pixmapOld.devicePixelRatio();
+    /* Compose desired height up to pixmap device pixel ratio: */
+    int iL, iT, iR, iB;
+    m_pLayoutRight->getContentsMargins(&iL, &iT, &iR, &iB);
+    const int iSpacing = iT + m_pLayoutRight->spacing() + iB;
+    const int iTitleHeight = m_pLabelPageTitle->minimumSizeHint().height();
+    const int iStackHeight = m_pWidgetStack->minimumSizeHint().height();
+    const int iDesiredHeight = (iTitleHeight + iSpacing + iStackHeight) * pixmapOld.devicePixelRatio();
     /* Create final image on the basis of incoming, applying the rules: */
     QImage imageNew(imageOld.width(), qMax(imageOld.height(), iDesiredHeight), imageOld.format());
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/UINativeWizard.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/UINativeWizard.h	(revision 90024)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/UINativeWizard.h	(revision 90032)
@@ -35,4 +35,5 @@
 class QPushButton;
 class QStackedWidget;
+class QVBoxLayout;
 class UINativeWizardPage;
 
@@ -164,7 +165,8 @@
     /** Holds the pixmap label instance. */
     QLabel                               *m_pLabelPixmap;
-#ifdef VBOX_WS_MAC
+    /** Holds the right layout instance. */
+    QVBoxLayout                          *m_pLayoutRight;
+    /** Holds the title label instance. */
     QLabel                               *m_pLabelPageTitle;
-#endif
     /** Holds the widget-stack instance. */
     QStackedWidget                       *m_pWidgetStack;
