Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp	(revision 45514)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp	(revision 45515)
@@ -255,4 +255,5 @@
     , m_fPolished(false)
     , m_strId(strId)
+    , m_iMainLayoutMargin(2), m_iMainFrameLayoutMargin(5), m_iMainFrameLayoutSpacing(5)
     , m_strMessage(strMessage), m_strDetails(strDetails)
     , m_iButton1(iButton1), m_iButton2(iButton2), m_iButton3(iButton3)
@@ -260,5 +261,4 @@
     , m_iButtonEsc(0)
     , m_iParentStatusBarHeight(parentStatusBarHeight(pParent))
-    , m_pMainLayout(0), m_pFrameLayout(0)
     , m_pTextPane(0), m_pButtonBox(0)
     , m_pButton1(0), m_pButton2(0), m_pButton3(0)
@@ -334,11 +334,67 @@
 }
 
+int UIPopupPane::minimumWidthHint() const
+{
+    /* Prepare minimum width hint: */
+    int iMinimumWidthHint = 0;
+
+    /* Take into account main layout: */
+    iMinimumWidthHint += 2 * m_iMainLayoutMargin;
+    {
+        /* Take into account main-frame layout: */
+        iMinimumWidthHint += 2 * m_iMainFrameLayoutMargin;
+        {
+            /* Take into account widgets: */
+            const int iTextPaneWidth = m_pTextPane->minimumSizeHint().width();
+            const int iButtonBoxWidth = m_pButtonBox->minimumSizeHint().width();
+            iMinimumWidthHint += qMax(iTextPaneWidth, iButtonBoxWidth);
+        }
+    }
+
+    /* Return minimum width hint: */
+    return iMinimumWidthHint;
+}
+
+int UIPopupPane::minimumHeightHint() const
+{
+    /* Prepare minimum height hint: */
+    int iMinimumHeightHint = 0;
+
+    /* Take into account main layout: */
+    iMinimumHeightHint += 2 * m_iMainLayoutMargin;
+    {
+        /* Take into account main-frame layout: */
+        iMinimumHeightHint += 2 * m_iMainFrameLayoutMargin;
+        {
+            /* Take into account widgets: */
+            iMinimumHeightHint += m_pTextPane->minimumSizeHint().height();
+            iMinimumHeightHint += m_iMainFrameLayoutSpacing;
+            iMinimumHeightHint += m_pButtonBox->minimumSizeHint().height();
+        }
+    }
+
+    /* Return minimum height hint: */
+    return iMinimumHeightHint;
+}
+
+QSize UIPopupPane::minimumSizeHint() const
+{
+    return QSize(minimumWidthHint(), minimumHeightHint());
+}
+
 void UIPopupPane::adjustAccordingParent()
 {
-    /* Get some variables: */
+    /* Get parent attributes: */
     const int iWidth = parentWidget()->width();
     const int iHeight = parentWidget()->height();
 
-    /* Resize popup according parent: */
+    /* Adjust text-pane according parent width: */
+    if (m_pTextPane)
+    {
+        m_pTextPane->setMinimumTextWidth(iWidth - 2 * m_iMainLayoutMargin
+                                                - 2 * m_iMainFrameLayoutMargin);
+    }
+
+    /* Resize popup according parent width: */
     resize(iWidth, minimumSizeHint().height());
 
@@ -349,16 +405,36 @@
     raise();
 
-    /* Resize text-pane according new size: */
-    if (m_pTextPane)
-    {
-        int iMinimumTextWidth = iWidth;
-        int iLeft, iTop, iRight, iBottom;
-        m_pMainLayout->getContentsMargins(&iLeft, &iTop, &iRight, &iBottom);
-        iMinimumTextWidth -= iLeft;
-        iMinimumTextWidth -= iRight;
-        m_pFrameLayout->getContentsMargins(&iLeft, &iTop, &iRight, &iBottom);
-        iMinimumTextWidth -= iLeft;
-        iMinimumTextWidth -= iRight;
-        m_pTextPane->setMinimumTextWidth(iMinimumTextWidth);
+    /* Update layout: */
+    updateLayout();
+}
+
+void UIPopupPane::updateLayout()
+{
+    /* This attributes: */
+    const int iWidth = width();
+    const int iHeight = height();
+    /* Main layout: */
+    {
+        /* Main-frame: */
+        m_pMainFrame->move(m_iMainLayoutMargin,
+                           m_iMainLayoutMargin);
+        m_pMainFrame->resize(iWidth - 2 * m_iMainLayoutMargin,
+                             iHeight - 2 * m_iMainLayoutMargin);
+        const int iMainFrameWidth = m_pMainFrame->width();
+        /* Main-frame layout: */
+        {
+            /* Text-pane: */
+            const int iTextPaneHeight = m_pTextPane->minimumSizeHint().height();
+            m_pTextPane->move(m_iMainFrameLayoutMargin,
+                              m_iMainFrameLayoutMargin);
+            m_pTextPane->resize(iMainFrameWidth - 2 * m_iMainFrameLayoutMargin,
+                                iTextPaneHeight);
+            /* Button-box: */
+            const int iButtonBoxHeight = m_pButtonBox->minimumSizeHint().height();
+            m_pButtonBox->move(m_iMainFrameLayoutMargin,
+                               m_iMainFrameLayoutMargin + iTextPaneHeight + m_iMainFrameLayoutSpacing);
+            m_pButtonBox->resize(iMainFrameWidth - 2 * m_iMainFrameLayoutMargin,
+                                 iButtonBoxHeight);
+        }
     }
 }
@@ -366,44 +442,26 @@
 void UIPopupPane::prepareContent()
 {
-    /* Configure this: */
+    /* Prepare this: */
     setFocusPolicy(Qt::StrongFocus);
-    /* Create main-layout: */
-    m_pMainLayout = new QVBoxLayout(this);
-    {
-        /* Configure layout: */
-        m_pMainLayout->setContentsMargins(2, 2, 2, 2);
-        m_pMainLayout->setSpacing(0);
-        /* Create main frame: */
-        UIPopupPaneFrame *pMainFrame = new UIPopupPaneFrame;
-        {
-            /* Add into layout: */
-            m_pMainLayout->addWidget(pMainFrame);
-            /* Create frame-layout: */
-            m_pFrameLayout = new QVBoxLayout(pMainFrame);
-            {
-                /* Configure layout: */
-                m_pFrameLayout->setContentsMargins(15, 0, 15, 0);
-                m_pFrameLayout->setSpacing(0);
-                /* Create message-label: */
-                m_pTextPane = new QIRichTextLabel;
-                {
-                    /* Add into layout: */
-                    m_pFrameLayout->addWidget(m_pTextPane);
-                    /* Configure label: */
-                    m_pTextPane->setFocusPolicy(Qt::StrongFocus);
-                    m_pTextPane->installEventFilter(pMainFrame);
-                    m_pTextPane->setText(m_strMessage);
-                    m_pTextPane->setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
-                }
-                /* Create button-box: */
-                m_pButtonBox = new QIDialogButtonBox;
-                {
-                    /* Add into layout: */
-                    m_pFrameLayout->addWidget(m_pButtonBox);
-                    /* Configure button-box: */
-                    m_pButtonBox->installEventFilter(pMainFrame);
-                    prepareButtons();
-                }
-            }
+    /* Create main-frame: */
+    m_pMainFrame = new UIPopupPaneFrame(this);
+    {
+        /* Prepare frame: */
+        m_pMainFrame->installEventFilter(m_pMainFrame);
+        /* Create message-label: */
+        m_pTextPane = new QIRichTextLabel(m_pMainFrame);
+        {
+            /* Prepare label: */
+            m_pTextPane->setFocusPolicy(Qt::StrongFocus);
+            m_pTextPane->installEventFilter(m_pMainFrame);
+            m_pTextPane->setText(m_strMessage);
+            m_pTextPane->setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+        }
+        /* Create button-box: */
+        m_pButtonBox = new QIDialogButtonBox(m_pMainFrame);
+        {
+            /* Prepare button-box: */
+            m_pButtonBox->installEventFilter(m_pMainFrame);
+            prepareButtons();
         }
     }
@@ -547,6 +605,4 @@
 void UIPopupPaneFrame::prepare()
 {
-    /* Install event-filter: */
-    installEventFilter(this);
     /* Install 'hover' animation for 'opacity' property: */
     UIAnimationFramework::installPropertyAnimation(this, QByteArray("opacity"),
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h	(revision 45514)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h	(revision 45515)
@@ -30,9 +30,9 @@
 
 /* Forward declaration: */
-class UIPopupPane;
-class QVBoxLayout;
 class QPushButton;
 class QIRichTextLabel;
 class QIDialogButtonBox;
+class UIPopupPane;
+class UIPopupPaneFrame;
 
 /* Global popup-center object: */
@@ -178,6 +178,10 @@
     virtual void keyPressEvent(QKeyEvent *pEvent);
 
-    /* Helper: Adjust stuff: */
+    /* Helper: Layout stuff: */
+    int minimumWidthHint() const;
+    int minimumHeightHint() const;
+    QSize minimumSizeHint() const;
     void adjustAccordingParent();
+    void updateLayout();
 
     /* Helpers: Prepare stuff: */
@@ -196,4 +200,7 @@
     bool m_fPolished;
     const QString m_strId;
+    int m_iMainLayoutMargin;
+    int m_iMainFrameLayoutMargin;
+    int m_iMainFrameLayoutSpacing;
     QString m_strMessage, m_strDetails;
     int m_iButton1, m_iButton2, m_iButton3;
@@ -203,6 +210,5 @@
 
     /* Widgets: */
-    QVBoxLayout *m_pMainLayout;
-    QVBoxLayout *m_pFrameLayout;
+    UIPopupPaneFrame *m_pMainFrame;
     QIRichTextLabel *m_pTextPane;
     QIDialogButtonBox *m_pButtonBox;
