Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 81356)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 81357)
@@ -470,5 +470,5 @@
       * @{ */
         /** Extra-data Manager Window constructor. */
-        UIExtraDataManagerWindow();
+        UIExtraDataManagerWindow(QWidget *pCenterWidget);
         /** Extra-data Manager Window destructor. */
         ~UIExtraDataManagerWindow();
@@ -645,4 +645,10 @@
 
 
+    /** @name Arguments
+      * @{ */
+        /** Holds the center widget reference. */
+        QWidget *m_pCenterWidget;
+    /** @} */
+
     /** @name General
       * @{ */
@@ -706,6 +712,7 @@
 *********************************************************************************************************************************/
 
-UIExtraDataManagerWindow::UIExtraDataManagerWindow()
-    : m_pMainLayout(0), m_pToolBar(0), m_pSplitter(0)
+UIExtraDataManagerWindow::UIExtraDataManagerWindow(QWidget *pCenterWidget)
+    : m_pCenterWidget(pCenterWidget)
+    , m_pMainLayout(0), m_pToolBar(0), m_pSplitter(0)
     , m_pPaneOfChooser(0), m_pFilterOfChooser(0), m_pViewOfChooser(0)
     , m_pModelSourceOfChooser(0), m_pModelProxyOfChooser(0)
@@ -1683,5 +1690,5 @@
     /* Load window geometry: */
     {
-        const QRect geo = gEDataManager->extraDataManagerGeometry(this);
+        const QRect geo = gEDataManager->extraDataManagerGeometry(this, m_pCenterWidget);
         LogRel2(("GUI: UIExtraDataManagerWindow: Restoring geometry to: Origin=%dx%d, Size=%dx%d\n",
                  geo.x(), geo.y(), geo.width(), geo.height()));
@@ -4116,5 +4123,5 @@
 
     /* Use geometry (loaded or default): */
-    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(QPoint(0, 0), availableGeometry.size() * .33 /* % */);
+    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(QPoint(0, 0), availableGeometry.size() * .50 /* % */);
 
     /* Take hint-widget into account: */
@@ -4424,5 +4431,5 @@
 
 #ifdef VBOX_GUI_WITH_EXTRADATA_MANAGER_UI
-QRect UIExtraDataManager::extraDataManagerGeometry(QWidget *pWidget)
+QRect UIExtraDataManager::extraDataManagerGeometry(QWidget *pWidget, QWidget *pParentWidget)
 {
     /* Get corresponding extra-data: */
@@ -4445,6 +4452,10 @@
     while (0);
 
+    /* Get available-geometry [of screen with point (iX, iY) if possible]: */
+    const QRect availableGeometry = fOk ? gpDesktop->availableGeometry(QPoint(iX, iY)) :
+                                          gpDesktop->availableGeometry();
+
     /* Use geometry (loaded or default): */
-    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(0, 0, 800, 600);
+    QRect geometry = fOk ? QRect(iX, iY, iW, iH) : QRect(QPoint(0, 0), availableGeometry.size() * .50 /* % */);
 
     /* Take hint-widget into account: */
@@ -4452,10 +4463,9 @@
         geometry.setSize(geometry.size().expandedTo(pWidget->minimumSizeHint()));
 
-    /* Get available-geometry [of screen with point (iX, iY) if possible]: */
-    const QRect availableGeometry = fOk ? gpDesktop->availableGeometry(QPoint(iX, iY)) :
-                                          gpDesktop->availableGeometry();
-
+    /* As a fallback, move default-geometry to pParentWidget' geometry center: */
+    if (!fOk && pParentWidget)
+        geometry.moveCenter(pParentWidget->geometry().center());
     /* As final fallback, move default-geometry to available-geometry' center: */
-    if (!fOk)
+    else if (!fOk)
         geometry.moveCenter(availableGeometry.center());
 
@@ -4541,5 +4551,5 @@
 #endif /* VBOX_GUI_WITH_EXTRADATA_MANAGER_UI */
 
-QRect UIExtraDataManager::logWindowGeometry(QWidget *pWidget, const QRect &defaultGeometry)
+QRect UIExtraDataManager::logWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QRect &defaultGeometry)
 {
     /* Get corresponding extra-data: */
@@ -4562,4 +4572,8 @@
     while (0);
 
+    /* Get available-geometry [of screen with point (iX, iY) if possible]: */
+    const QRect availableGeometry = fOk ? gpDesktop->availableGeometry(QPoint(iX, iY)) :
+                                          gpDesktop->availableGeometry();
+
     /* Use geometry (loaded or default): */
     QRect geometry = fOk ? QRect(iX, iY, iW, iH) : defaultGeometry;
@@ -4569,10 +4583,13 @@
         geometry.setSize(geometry.size().expandedTo(pWidget->minimumSizeHint()));
 
+    /* As a fallback, move default-geometry to pParentWidget' geometry center: */
+    if (!fOk && pParentWidget)
+        geometry.moveCenter(pParentWidget->geometry().center());
+    /* As final fallback, move default-geometry to available-geometry' center: */
+    else if (!fOk)
+        geometry.moveCenter(availableGeometry.center());
+
     /* In Windows Qt fails to reposition out of screen window properly, so doing it ourselves: */
 #ifdef VBOX_WS_WIN
-    /* Get available-geometry [of screen with point (iX, iY) if possible]: */
-    const QRect availableGeometry = fOk ? gpDesktop->availableGeometry(QPoint(iX, iY)) :
-                                          gpDesktop->availableGeometry();
-
     /* Make sure resulting geometry is within current bounds: */
     if (!availableGeometry.contains(geometry))
@@ -4844,5 +4861,5 @@
     {
         /* Create window: */
-        m_pWindow = new UIExtraDataManagerWindow;
+        m_pWindow = new UIExtraDataManagerWindow(pCenterWidget);
         /* Configure window connections: */
         connect(this, &UIExtraDataManager::sigExtraDataMapAcknowledging,
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 81356)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 81357)
@@ -714,6 +714,6 @@
     /** @name VirtualBox: Extra-data Manager window
       * @{ */
-        /** Returns Extra-data Manager geometry using @a pWidget as hint. */
-        QRect extraDataManagerGeometry(QWidget *pWidget);
+        /** Returns Extra-data Manager geometry using @a pWidget and @a pParentWidget as hint. */
+        QRect extraDataManagerGeometry(QWidget *pWidget, QWidget *pParentWidget);
         /** Returns whether Extra-data Manager should be maximized or not. */
         bool extraDataManagerShouldBeMaximized();
@@ -730,6 +730,6 @@
     /** @name Virtual Machine: Log Viewer dialog
       * @{ */
-        /** Returns log-window geometry using @a pWidget and @a defaultGeometry as hints. */
-        QRect logWindowGeometry(QWidget *pWidget, const QRect &defaultGeometry);
+        /** Returns log-window geometry using @a pWidget, @a pParentWidget and @a defaultGeometry as hints. */
+        QRect logWindowGeometry(QWidget *pWidget, QWidget *pParentWidget, const QRect &defaultGeometry);
         /** Returns whether log-window should be maximized or not. */
         bool logWindowShouldBeMaximized();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.cpp	(revision 81356)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerDialog.cpp	(revision 81357)
@@ -128,11 +128,7 @@
     }
     QRect defaultGeo(0, 0, iDefaultWidth, iDefaultHeight);
-    if (centerWidget())
-        defaultGeo.moveCenter(centerWidget()->geometry().center());
-    else
-        defaultGeo.moveCenter(availableGeo.center());
 
     /* Load geometry from extradata: */
-    const QRect geo = gEDataManager->logWindowGeometry(this, defaultGeo);
+    const QRect geo = gEDataManager->logWindowGeometry(this, centerWidget(), defaultGeo);
     LogRel2(("GUI: UIVMLogViewerDialog: Restoring geometry to: Origin=%dx%d, Size=%dx%d\n",
              geo.x(), geo.y(), geo.width(), geo.height()));
