Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.cpp	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.cpp	(revision 81248)
@@ -16,8 +16,12 @@
  */
 
+/* Qt includes: */
+#include <QResizeEvent>
+
 /* GUI includes: */
 #include "QIMainWindow.h"
 #ifdef VBOX_WS_X11
 # include "UICommon.h"
+# include "UIDesktopWidgetWatchdog.h"
 #endif
 
@@ -28,4 +32,47 @@
 }
 
+void QIMainWindow::moveEvent(QMoveEvent *pEvent)
+{
+    /* Call to base-class: */
+    QMainWindow::moveEvent(pEvent);
+
+#ifdef VBOX_WS_X11
+    /* Prevent further handling if fake screen detected: */
+    if (gpDesktop->isFakeScreenDetected())
+        return;
+#endif
+
+    /* Prevent handling for yet/already invisible window or if window is in minimized state: */
+    if (isVisible() && (windowState() & Qt::WindowMinimized) == 0)
+    {
+#if defined(VBOX_WS_MAC) || defined(VBOX_WS_WIN)
+        /* Use the old approach for OSX/Win: */
+        m_geometry.moveTo(frameGeometry().x(), frameGeometry().y());
+#else
+        /* Use the new approach otherwise: */
+        m_geometry.moveTo(geometry().x(), geometry().y());
+#endif
+    }
+}
+
+void QIMainWindow::resizeEvent(QResizeEvent *pEvent)
+{
+    /* Call to base-class: */
+    QMainWindow::resizeEvent(pEvent);
+
+#ifdef VBOX_WS_X11
+    /* Prevent handling if fake screen detected: */
+    if (gpDesktop->isFakeScreenDetected())
+        return;
+#endif
+
+    /* Prevent handling for yet/already invisible window or if window is in minimized state: */
+    if (isVisible() && (windowState() & Qt::WindowMinimized) == 0)
+    {
+        QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
+        m_geometry.setSize(pResizeEvent->size());
+    }
+}
+
 void QIMainWindow::restoreGeometry()
 {
@@ -34,8 +81,8 @@
     move(m_geometry.topLeft());
     resize(m_geometry.size());
-#else /* !VBOX_WS_MAC && !VBOX_WS_WIN */
+#else
     /* Use the new approach otherwise: */
     UICommon::setTopLevelGeometry(this, m_geometry);
-#endif /* !VBOX_WS_MAC && !VBOX_WS_WIN */
+#endif
 
     /* Maximize (if necessary): */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.h	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIMainWindow.h	(revision 81248)
@@ -45,4 +45,9 @@
 protected:
 
+    /** Handles move @a pEvent. */
+    virtual void moveEvent(QMoveEvent *pEvent) /* override */;
+    /** Handles resize @a pEvent. */
+    virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
+
     /** Returns whether the window should be maximized when geometry being restored. */
     virtual bool shouldBeMaximized() const { return false; }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 81248)
@@ -573,10 +573,4 @@
         /** Cleanup instance. */
         void cleanup();
-    /** @} */
-
-    /** @name Event Processing
-      * @{ */
-        /** Common event-handler. */
-        bool event(QEvent *pEvent);
     /** @} */
 
@@ -1729,43 +1723,4 @@
 }
 
-bool UIExtraDataManagerWindow::event(QEvent *pEvent)
-{
-    /* Pre-process through base-class: */
-    bool fResult = QIMainWindow::event(pEvent);
-
-    /* Process required events: */
-    switch (pEvent->type())
-    {
-        /* Handle every Resize and Move we keep track of the geometry. */
-        case QEvent::Resize:
-        {
-            if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
-            {
-                QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
-                m_geometry.setSize(pResizeEvent->size());
-            }
-            break;
-        }
-        case QEvent::Move:
-        {
-            if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
-            {
-#ifdef VBOX_WS_MAC
-                QMoveEvent *pMoveEvent = static_cast<QMoveEvent*>(pEvent);
-                m_geometry.moveTo(pMoveEvent->pos());
-#else /* !VBOX_WS_MAC */
-                m_geometry.moveTo(geometry().x(), geometry().y());
-#endif /* !VBOX_WS_MAC */
-            }
-            break;
-        }
-        default:
-            break;
-    }
-
-    /* Return result: */
-    return fResult;
-}
-
 void UIExtraDataManagerWindow::updateActionsAvailability()
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 81248)
@@ -18,5 +18,4 @@
 /* Qt includes: */
 #include <QMenuBar>
-#include <QResizeEvent>
 #include <QStandardPaths>
 #include <QStatusBar>
@@ -188,45 +187,4 @@
 }
 
-void UIVirtualBoxManager::moveEvent(QMoveEvent *pEvent)
-{
-    /* Call to base-class: */
-    QIWithRetranslateUI<QIMainWindow>::moveEvent(pEvent);
-
-#ifdef VBOX_WS_X11
-    /* Prevent further handling if fake screen detected: */
-    if (gpDesktop->isFakeScreenDetected())
-        return;
-#endif
-
-    /* Prevent handling for yet/already invisible window or if window is in minimized state: */
-    if (isVisible() && (windowState() & Qt::WindowMinimized) == 0)
-    {
-#if defined(VBOX_WS_MAC) || defined(VBOX_WS_WIN)
-        m_geometry.moveTo(frameGeometry().x(), frameGeometry().y());
-#else
-        m_geometry.moveTo(geometry().x(), geometry().y());
-#endif
-    }
-}
-
-void UIVirtualBoxManager::resizeEvent(QResizeEvent *pEvent)
-{
-    /* Call to base-class: */
-    QIWithRetranslateUI<QIMainWindow>::resizeEvent(pEvent);
-
-#ifdef VBOX_WS_X11
-    /* Prevent handling if fake screen detected: */
-    if (gpDesktop->isFakeScreenDetected())
-        return;
-#endif
-
-    /* Prevent handling for yet/already invisible window or if window is in minimized state: */
-    if (isVisible() && (windowState() & Qt::WindowMinimized) == 0)
-    {
-        QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
-        m_geometry.setSize(pResizeEvent->size());
-    }
-}
-
 void UIVirtualBoxManager::showEvent(QShowEvent *pEvent)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 81248)
@@ -91,8 +91,4 @@
         /** Handles any Qt @a pEvent. */
         virtual bool event(QEvent *pEvent) /* override */;
-        /** Handles move @a pEvent. */
-        virtual void moveEvent(QMoveEvent *pEvent) /* override */;
-        /** Handles resize @a pEvent. */
-        virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
         /** Handles show @a pEvent. */
         virtual void showEvent(QShowEvent *pEvent) /* override */;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.cpp	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.cpp	(revision 81248)
@@ -116,44 +116,4 @@
 }
 
-bool UIVMInformationDialog::event(QEvent *pEvent)
-{
-    /* Pre-process through base-class: */
-    const bool fResult = QIMainWindow::event(pEvent);
-
-    /* Process required events: */
-    switch (pEvent->type())
-    {
-        /* Handle Resize event to keep track of the geometry: */
-        case QEvent::Resize:
-        {
-            if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
-            {
-                QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
-                m_geometry.setSize(pResizeEvent->size());
-            }
-            break;
-        }
-        /* Handle Move event to keep track of the geometry: */
-        case QEvent::Move:
-        {
-            if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
-            {
-#ifdef VBOX_WS_MAC
-                QMoveEvent *pMoveEvent = static_cast<QMoveEvent*>(pEvent);
-                m_geometry.moveTo(pMoveEvent->pos());
-#else /* VBOX_WS_MAC */
-                m_geometry.moveTo(geometry().x(), geometry().y());
-#endif /* !VBOX_WS_MAC */
-            }
-            break;
-        }
-        default:
-            break;
-    }
-
-    /* Return result: */
-    return fResult;
-}
-
 void UIVMInformationDialog::sltHandlePageChanged(int iIndex)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.h	(revision 81247)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIVMInformationDialog.h	(revision 81248)
@@ -61,7 +61,4 @@
     void retranslateUi();
 
-    /** Handles any Qt @a pEvent. */
-    bool event(QEvent *pEvent);
-
 private slots:
 
