Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionsPool.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionsPool.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionsPool.cpp	(revision 36083)
@@ -223,4 +223,245 @@
 };
 
+class PerformTakeSnapshotAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    PerformTakeSnapshotAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/take_snapshot_16px.png", ":/take_snapshot_dis_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "Take &Snapshot..."), gMS->shortcut(UIMachineShortcuts::TakeSnapshotShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Take a snapshot of the virtual machine"));
+    }
+};
+
+class ShowInformationDialogAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    ShowInformationDialogAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/session_info_16px.png", ":/session_info_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "Session I&nformation"), gMS->shortcut(UIMachineShortcuts::InformationDialogShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Show Session Information Dialog"));
+    }
+};
+
+class MenuMouseIntegrationAction : public UIMenuAction
+{
+    Q_OBJECT;
+
+public:
+
+    MenuMouseIntegrationAction(QObject *pParent)
+        : UIMenuAction(pParent)
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+    }
+};
+
+class ToggleMouseIntegrationAction : public UIToggleAction
+{
+    Q_OBJECT;
+
+public:
+
+    ToggleMouseIntegrationAction(QObject *pParent)
+        : UIToggleAction(pParent,
+                         ":/mouse_can_seamless_on_16px.png", ":/mouse_can_seamless_16px.png",
+                         ":/mouse_can_seamless_on_disabled_16px.png", ":/mouse_can_seamless_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "Disable &Mouse Integration"), gMS->shortcut(UIMachineShortcuts::MouseIntegrationShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Temporarily disable host mouse pointer integration"));
+    }
+};
+
+class PerformTypeCADAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    PerformTypeCADAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/hostkey_16px.png", ":/hostkey_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Insert Ctrl-Alt-Del"), gMS->shortcut(UIMachineShortcuts::TypeCADShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Send the Ctrl-Alt-Del sequence to the virtual machine"));
+    }
+};
+
+#ifdef Q_WS_X11
+class PerformTypeCABSAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    PerformTypeCABSAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/hostkey_16px.png", ":/hostkey_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Insert Ctrl-Alt-Backspace"), gMS->shortcut(UIMachineShortcuts::TypeCABSShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Send the Ctrl-Alt-Backspace sequence to the virtual machine"));
+    }
+};
+#endif
+
+class TogglePauseAction : public UIToggleAction
+{
+    Q_OBJECT;
+
+public:
+
+    TogglePauseAction(QObject *pParent)
+        : UIToggleAction(pParent,
+                         ":/pause_16px.png", ":/pause_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Pause"), gMS->shortcut(UIMachineShortcuts::PauseShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Suspend the execution of the virtual machine"));
+    }
+};
+
+class PerformResetAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    PerformResetAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/reset_16px.png", ":/reset_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Reset"), gMS->shortcut(UIMachineShortcuts::ResetShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Reset the virtual machine"));
+    }
+};
+
+class PerformShutdownAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    PerformShutdownAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/acpi_16px.png", ":/acpi_disabled_16px.png")
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "ACPI Sh&utdown"), gMS->shortcut(UIMachineShortcuts::ShutdownShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Send the ACPI Power Button press event to the virtual machine"));
+    }
+};
+
+class PerformCloseAction : public UISimpleAction
+{
+    Q_OBJECT;
+
+public:
+
+    PerformCloseAction(QObject *pParent)
+        : UISimpleAction(pParent,
+                         ":/exit_16px.png")
+    {
+        setMenuRole(QAction::QuitRole);
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Close..."), gMS->shortcut(UIMachineShortcuts::CloseShortcut)));
+        setStatusTip(QApplication::translate("UIActionsPool", "Close the virtual machine"));
+    }
+};
+
+class MenuViewAction : public UIMenuAction
+{
+    Q_OBJECT;
+
+public:
+
+    MenuViewAction(QObject *pParent)
+        : UIMenuAction(pParent)
+    {
+        retranslateUi();
+    }
+
+protected:
+
+    void retranslateUi()
+    {
+        menu()->setTitle(QApplication::translate("UIActionsPool", "&View"));
+    }
+};
+
 class ToggleFullscreenModeAction : public UIToggleAction
 {
@@ -337,245 +578,4 @@
 };
 
-class MenuMouseIntegrationAction : public UIMenuAction
-{
-    Q_OBJECT;
-
-public:
-
-    MenuMouseIntegrationAction(QObject *pParent)
-        : UIMenuAction(pParent)
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-    }
-};
-
-class ToggleMouseIntegrationAction : public UIToggleAction
-{
-    Q_OBJECT;
-
-public:
-
-    ToggleMouseIntegrationAction(QObject *pParent)
-        : UIToggleAction(pParent,
-                         ":/mouse_can_seamless_on_16px.png", ":/mouse_can_seamless_16px.png",
-                         ":/mouse_can_seamless_on_disabled_16px.png", ":/mouse_can_seamless_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "Disable &Mouse Integration"), gMS->shortcut(UIMachineShortcuts::MouseIntegrationShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Temporarily disable host mouse pointer integration"));
-    }
-};
-
-class PerformTypeCADAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    PerformTypeCADAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/hostkey_16px.png", ":/hostkey_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Insert Ctrl-Alt-Del"), gMS->shortcut(UIMachineShortcuts::TypeCADShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Send the Ctrl-Alt-Del sequence to the virtual machine"));
-    }
-};
-
-#ifdef Q_WS_X11
-class PerformTypeCABSAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    PerformTypeCABSAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/hostkey_16px.png", ":/hostkey_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Insert Ctrl-Alt-Backspace"), gMS->shortcut(UIMachineShortcuts::TypeCABSShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Send the Ctrl-Alt-Backspace sequence to the virtual machine"));
-    }
-};
-#endif
-
-class PerformTakeSnapshotAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    PerformTakeSnapshotAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/take_snapshot_16px.png", ":/take_snapshot_dis_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "Take &Snapshot..."), gMS->shortcut(UIMachineShortcuts::TakeSnapshotShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Take a snapshot of the virtual machine"));
-    }
-};
-
-class ShowInformationDialogAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    ShowInformationDialogAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/session_info_16px.png", ":/session_info_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "Session I&nformation"), gMS->shortcut(UIMachineShortcuts::InformationDialogShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Show Session Information Dialog"));
-    }
-};
-
-class TogglePauseAction : public UIToggleAction
-{
-    Q_OBJECT;
-
-public:
-
-    TogglePauseAction(QObject *pParent)
-        : UIToggleAction(pParent,
-                         ":/pause_16px.png", ":/pause_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Pause"), gMS->shortcut(UIMachineShortcuts::PauseShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Suspend the execution of the virtual machine"));
-    }
-};
-
-class PerformResetAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    PerformResetAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/reset_16px.png", ":/reset_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Reset"), gMS->shortcut(UIMachineShortcuts::ResetShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Reset the virtual machine"));
-    }
-};
-
-class PerformShutdownAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    PerformShutdownAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/acpi_16px.png", ":/acpi_disabled_16px.png")
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "ACPI Sh&utdown"), gMS->shortcut(UIMachineShortcuts::ShutdownShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Send the ACPI Power Button press event to the virtual machine"));
-    }
-};
-
-class PerformCloseAction : public UISimpleAction
-{
-    Q_OBJECT;
-
-public:
-
-    PerformCloseAction(QObject *pParent)
-        : UISimpleAction(pParent,
-                         ":/exit_16px.png")
-    {
-        setMenuRole(QAction::QuitRole);
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        setText(vboxGlobal().insertKeyToActionText(QApplication::translate("UIActionsPool", "&Close..."), gMS->shortcut(UIMachineShortcuts::CloseShortcut)));
-        setStatusTip(QApplication::translate("UIActionsPool", "Close the virtual machine"));
-    }
-};
-
-class MenuViewAction : public UIMenuAction
-{
-    Q_OBJECT;
-
-public:
-
-    MenuViewAction(QObject *pParent)
-        : UIMenuAction(pParent)
-    {
-        retranslateUi();
-    }
-
-protected:
-
-    void retranslateUi()
-    {
-        menu()->setTitle(QApplication::translate("UIActionsPool", "&View"));
-    }
-};
-
 class MenuDevicesAction : public UIMenuAction
 {
@@ -1114,4 +1114,17 @@
 {
     /* "Machine" menu actions: */
+    m_actionsPool[UIActionIndex_Simple_TakeSnapshot] = new PerformTakeSnapshotAction(this);
+    m_actionsPool[UIActionIndex_Simple_InformationDialog] = new ShowInformationDialogAction(this);
+    m_actionsPool[UIActionIndex_Toggle_MouseIntegration] = new ToggleMouseIntegrationAction(this);
+    m_actionsPool[UIActionIndex_Simple_TypeCAD] = new PerformTypeCADAction(this);
+#ifdef Q_WS_X11
+    m_actionsPool[UIActionIndex_Simple_TypeCABS] = new PerformTypeCABSAction(this);
+#endif
+    m_actionsPool[UIActionIndex_Toggle_Pause] = new TogglePauseAction(this);
+    m_actionsPool[UIActionIndex_Simple_Reset] = new PerformResetAction(this);
+    m_actionsPool[UIActionIndex_Simple_Shutdown] = new PerformShutdownAction(this);
+    m_actionsPool[UIActionIndex_Simple_Close] = new PerformCloseAction(this);
+
+    /* "View" menu actions: */
     m_actionsPool[UIActionIndex_Toggle_Fullscreen] = new ToggleFullscreenModeAction(this);
     m_actionsPool[UIActionIndex_Toggle_Seamless] = new ToggleSeamlessModeAction(this);
@@ -1119,15 +1132,4 @@
     m_actionsPool[UIActionIndex_Toggle_GuestAutoresize] = new ToggleGuestAutoresizeAction(this);
     m_actionsPool[UIActionIndex_Simple_AdjustWindow] = new PerformWindowAdjustAction(this);
-    m_actionsPool[UIActionIndex_Toggle_MouseIntegration] = new ToggleMouseIntegrationAction(this);
-    m_actionsPool[UIActionIndex_Simple_TypeCAD] = new PerformTypeCADAction(this);
-#ifdef Q_WS_X11
-    m_actionsPool[UIActionIndex_Simple_TypeCABS] = new PerformTypeCABSAction(this);
-#endif
-    m_actionsPool[UIActionIndex_Simple_TakeSnapshot] = new PerformTakeSnapshotAction(this);
-    m_actionsPool[UIActionIndex_Simple_InformationDialog] = new ShowInformationDialogAction(this);
-    m_actionsPool[UIActionIndex_Toggle_Pause] = new TogglePauseAction(this);
-    m_actionsPool[UIActionIndex_Simple_Reset] = new PerformResetAction(this);
-    m_actionsPool[UIActionIndex_Simple_Shutdown] = new PerformShutdownAction(this);
-    m_actionsPool[UIActionIndex_Simple_Close] = new PerformCloseAction(this);
 
     /* "Devices" menu actions: */
@@ -1226,10 +1228,11 @@
         delete m_actionsPool[UIActionIndex_Menu_Machine];
     m_actionsPool[UIActionIndex_Menu_Machine] = new MenuMachineAction(this);
+    if (m_actionsPool[UIActionIndex_Menu_MouseIntegration])
+        delete m_actionsPool[UIActionIndex_Menu_MouseIntegration];
+    m_actionsPool[UIActionIndex_Menu_MouseIntegration] = new MenuMouseIntegrationAction(this);
+
     if (m_actionsPool[UIActionIndex_Menu_View])
         delete m_actionsPool[UIActionIndex_Menu_View];
     m_actionsPool[UIActionIndex_Menu_View] = new MenuViewAction(this);
-    if (m_actionsPool[UIActionIndex_Menu_MouseIntegration])
-        delete m_actionsPool[UIActionIndex_Menu_MouseIntegration];
-    m_actionsPool[UIActionIndex_Menu_MouseIntegration] = new MenuMouseIntegrationAction(this);
 
     if (m_actionsPool[UIActionIndex_Menu_Devices])
@@ -1248,5 +1251,4 @@
         delete m_actionsPool[UIActionIndex_Menu_NetworkAdapters];
     m_actionsPool[UIActionIndex_Menu_NetworkAdapters] = new MenuNetworkAdaptersAction(this);
-
     if (m_actionsPool[UIActionIndex_Menu_SharedFolders])
         delete m_actionsPool[UIActionIndex_Menu_SharedFolders];
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp	(revision 36083)
@@ -144,4 +144,5 @@
     {
         QMenu *pMenuView = pActionsPool->action(UIActionIndex_Menu_View)->menu();
+        prepareMenuView(pMenuView, pActionsPool);
         preparedSubMenus << pMenuView;
     }
@@ -189,9 +190,6 @@
 
     /* Machine submenu: */
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Fullscreen));
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Seamless));
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Scale));
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_GuestAutoresize));
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_AdjustWindow));
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_TakeSnapshot));
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_InformationDialog));
     pMenu->addSeparator();
     pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_MouseIntegration));
@@ -201,8 +199,4 @@
     pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_TypeCABS));
 #endif
-    pMenu->addSeparator();
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_TakeSnapshot));
-    pMenu->addSeparator();
-    pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_InformationDialog));
     pMenu->addSeparator();
     pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Pause));
@@ -213,4 +207,19 @@
 #endif /* !Q_WS_MAC */
     pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_Close));
+}
+
+void UIMachineMenuBar::prepareMenuView(QMenu *pMenu, UIActionsPool *pActionsPool)
+{
+    /* Do not prepare if ready: */
+    if (!pMenu->isEmpty())
+        return;
+
+    /* View submenu: */
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Fullscreen));
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Seamless));
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_Scale));
+    pMenu->addSeparator();
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Toggle_GuestAutoresize));
+    pMenu->addAction(pActionsPool->action(UIActionIndex_Simple_AdjustWindow));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.h	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.h	(revision 36083)
@@ -45,4 +45,5 @@
     QList<QMenu*> prepareSubMenus(UIActionsPool *pActionsPool, UIMainMenuType fOptions = UIMainMenuType_All);
     void prepareMenuMachine(QMenu *pMenu, UIActionsPool *pActionsPool);
+    void prepareMenuView(QMenu *pMenu, UIActionsPool *pActionsPool);
     void prepareMenuDevices(QMenu *pMenu, UIActionsPool *pActionsPool);
 #ifdef VBOX_WITH_DEBUGGER_GUI
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp	(revision 36083)
@@ -49,23 +49,31 @@
 {
     delete m_pScreenMap;
+    while (!m_screenMenuList.isEmpty())
+    {
+        delete m_screenMenuList.first();
+        m_screenMenuList.removeFirst();
+    }
 }
 
 void UIMultiScreenLayout::initialize(QMenu *pMenu)
 {
-    pMenu->clear();
-    for (int i = 0; i < m_cGuestScreens; ++i)
-    {
-        QMenu *pScreenMenu = pMenu->addMenu(tr("Virtual Screen %1").arg(i + 1));
-        QActionGroup *pScreenGroup = new QActionGroup(pScreenMenu);
-        pScreenGroup->setExclusive(true);
-        connect(pScreenGroup, SIGNAL(triggered(QAction*)),
-                this, SLOT(sltScreenLayoutChanged(QAction*)));
-        for (int a = 0; a < m_cHostScreens; ++a)
-        {
-            QAction *pAction = pScreenGroup->addAction(tr("Use Host Screen %1").arg(a + 1));
-            pAction->setCheckable(true);
-            pAction->setData(RT_MAKE_U32(i, a));
-        }
-        pScreenMenu->addActions(pScreenGroup->actions());
+    if (m_cHostScreens > 1)
+    {
+        pMenu->addSeparator();
+        for (int i = 0; i < m_cGuestScreens; ++i)
+        {
+            m_screenMenuList << pMenu->addMenu(tr("Virtual Screen %1").arg(i + 1));
+            m_screenMenuList.last()->menuAction()->setData(true);
+            QActionGroup *pScreenGroup = new QActionGroup(m_screenMenuList.last());
+            pScreenGroup->setExclusive(true);
+            connect(pScreenGroup, SIGNAL(triggered(QAction*)), this, SLOT(sltScreenLayoutChanged(QAction*)));
+            for (int a = 0; a < m_cHostScreens; ++a)
+            {
+                QAction *pAction = pScreenGroup->addAction(tr("Use Host Screen %1").arg(a + 1));
+                pAction->setCheckable(true);
+                pAction->setData(RT_MAKE_U32(i, a));
+            }
+            m_screenMenuList.last()->addActions(pScreenGroup->actions());
+        }
     }
 }
@@ -84,6 +92,5 @@
     for (int i = 0; i < m_cGuestScreens; ++i)
     {
-        /* If the user ever selected a combination in the view menu, we have
-         * the following entry: */
+        /* If the user ever selected a combination in the view menu, we have the following entry: */
         QString strTest = machine.GetExtraData(QString("%1%2").arg(VBoxDefs::GUI_VirtualScreenToHostScreen).arg(i));
         bool fOk;
@@ -127,14 +134,23 @@
     }
 
-    QList<QAction*> actions = m_pMachineLogic->actionsPool()->action(UIActionIndex_Menu_View)->menu()->actions();
-    for (int i = 0; i < m_pScreenMap->size(); ++i)
-    {
-        int hostScreen = m_pScreenMap->value(i);
-        QList<QAction*> actions1 = actions.at(i)->menu()->actions();
-        for (int w = 0; w < actions1.size(); ++w)
-        {
-            QAction *pTmpAction = actions1.at(w);
+    /* Get the list of all view-menu actions: */
+    QList<QAction*> viewMenuActions = m_pMachineLogic->actionsPool()->action(UIActionIndex_Menu_View)->menu()->actions();
+    /* Get the list of all view related actions: */
+    QList<QAction*> viewActions;
+    for (int i = 0; i < viewMenuActions.size(); ++i)
+    {
+        if (viewMenuActions[i]->data().toBool())
+            viewActions << viewMenuActions[i];
+    }
+    /* Mark currently chosen action: */
+    for (int i = 0; i < viewActions.size(); ++i)
+    {
+        int iHostScreen = m_pScreenMap->value(i);
+        QList<QAction*> screenActions = viewActions.at(i)->menu()->actions();
+        for (int w = 0; w < screenActions.size(); ++w)
+        {
+            QAction *pTmpAction = screenActions.at(w);
             pTmpAction->blockSignals(true);
-            pTmpAction->setChecked(RT_HIWORD(pTmpAction->data().toInt()) == hostScreen);
+            pTmpAction->setChecked(RT_HIWORD(pTmpAction->data().toInt()) == iHostScreen);
             pTmpAction->blockSignals(false);
         }
@@ -222,18 +238,24 @@
     }
 
-    /* Update the menu items. Even if we can't switch we have to revert the
-     * menu items. */
-    QList<QAction*> actions = m_pMachineLogic->actionsPool()->action(UIActionIndex_Menu_View)->menu()->actions();
-    /* Update the settings. */
-    for (int i = 0; i < m_cGuestScreens; ++i)
-    {
-        int hostScreen = m_pScreenMap->value(i);
-        machine.SetExtraData(QString("%1%2").arg(VBoxDefs::GUI_VirtualScreenToHostScreen).arg(i), QString::number(hostScreen));
-        QList<QAction*> actions1 = actions.at(i)->menu()->actions();
-        for (int w = 0; w < actions1.size(); ++w)
-        {
-            QAction *pTmpAction = actions1.at(w);
+    /* Get the list of all view-menu actions: */
+    QList<QAction*> viewMenuActions = m_pMachineLogic->actionsPool()->action(UIActionIndex_Menu_View)->menu()->actions();
+    /* Get the list of all view related actions: */
+    QList<QAction*> viewActions;
+    for (int i = 0; i < viewMenuActions.size(); ++i)
+    {
+        if (viewMenuActions[i]->data().toBool())
+            viewActions << viewMenuActions[i];
+    }
+    /* Update the menu items. Even if we can't switch we have to revert the menu items. */
+    for (int i = 0; i < viewActions.size(); ++i)
+    {
+        int iHostScreen = m_pScreenMap->value(i);
+        machine.SetExtraData(QString("%1%2").arg(VBoxDefs::GUI_VirtualScreenToHostScreen).arg(i), QString::number(iHostScreen));
+        QList<QAction*> screenActions = viewActions.at(i)->menu()->actions();
+        for (int w = 0; w < screenActions.size(); ++w)
+        {
+            QAction *pTmpAction = screenActions.at(w);
             pTmpAction->blockSignals(true);
-            pTmpAction->setChecked(RT_HIWORD(pTmpAction->data().toInt()) == hostScreen);
+            pTmpAction->setChecked(RT_HIWORD(pTmpAction->data().toInt()) == iHostScreen);
             pTmpAction->blockSignals(false);
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.h	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.h	(revision 36083)
@@ -63,4 +63,5 @@
 
     QMap<int, int> *m_pScreenMap;
+    QList<QMenu*> m_screenMenuList;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 36083)
@@ -166,12 +166,8 @@
 void UIMachineWindowFullscreen::prepareMenu()
 {
-    UIMainMenuType fMenus = UIMainMenuType_All;
-    /* Remove the view menu in the case there is one screen only. */
-    if (QApplication::desktop()->numScreens() == 1)
-        fMenus = UIMainMenuType(fMenus ^ UIMainMenuType_View);
 #ifdef Q_WS_MAC
-    setMenuBar(uisession()->newMenuBar(fMenus));
+    setMenuBar(uisession()->newMenuBar());
 #endif /* Q_WS_MAC */
-    m_pMainMenu = uisession()->newMenu(fMenus);
+    m_pMainMenu = uisession()->newMenu();
 }
 
@@ -193,8 +189,5 @@
         m_pMiniToolBar->updateDisplay(true, true);
         QList<QMenu*> menus;
-        UIMainMenuType fMenu = UIMainMenuType(UIMainMenuType_Machine | UIMainMenuType_Devices);
-        if (QApplication::desktop()->numScreens() > 1)
-            fMenu = UIMainMenuType(fMenu | UIMainMenuType_View);
-        QList<QAction*> actions = uisession()->newMenu(fMenu)->actions();
+        QList<QAction*> actions = uisession()->newMenu()->actions();
         for (int i=0; i < actions.size(); ++i)
             menus << actions.at(i)->menu();
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 36083)
@@ -376,6 +376,5 @@
 void UIMachineWindowNormal::prepareMenu()
 {
-    /* No view menu in normal mode */
-    setMenuBar(uisession()->newMenuBar(UIMainMenuType(UIMainMenuType_All ^ UIMainMenuType_View)));
+    setMenuBar(uisession()->newMenuBar());
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 36083)
@@ -230,10 +230,8 @@
 void UIMachineWindowScale::prepareMenu()
 {
-    UIMainMenuType fMenus = UIMainMenuType(UIMainMenuType_All ^ UIMainMenuType_View);
-#ifdef Q_WS_MAC
-    setMenuBar(uisession()->newMenuBar(fMenus));
+#ifdef Q_WS_MAC
+    setMenuBar(uisession()->newMenuBar());
 #endif /* Q_WS_MAC */
-    /* No view menu in normal mode: */
-    m_pMainMenu = uisession()->newMenu(fMenus);
+    m_pMainMenu = uisession()->newMenu();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 36049)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 36083)
@@ -215,12 +215,8 @@
 void UIMachineWindowSeamless::prepareMenu()
 {
-    UIMainMenuType fMenus = UIMainMenuType_All;
-    /* Remove the view menu in the case there is one screen only. */
-    if (QApplication::desktop()->numScreens() == 1)
-        fMenus = UIMainMenuType(fMenus ^ UIMainMenuType_View);
-#ifdef Q_WS_MAC
-    setMenuBar(uisession()->newMenuBar(fMenus));
-#endif /* Q_WS_MAC */
-    m_pMainMenu = uisession()->newMenu(fMenus);
+#ifdef Q_WS_MAC
+    setMenuBar(uisession()->newMenuBar());
+#endif /* Q_WS_MAC */
+    m_pMainMenu = uisession()->newMenu();
 }
 
@@ -244,8 +240,5 @@
         m_pMiniToolBar->updateDisplay(true, true);
         QList<QMenu*> menus;
-        UIMainMenuType fMenu = UIMainMenuType(UIMainMenuType_Machine | UIMainMenuType_Devices);
-        if (QApplication::desktop()->numScreens() > 1)
-            fMenu = UIMainMenuType(fMenu | UIMainMenuType_View);
-        QList<QAction*> actions = uisession()->newMenu(fMenu)->actions();
+        QList<QAction*> actions = uisession()->newMenu()->actions();
         for (int i=0; i < actions.size(); ++i)
             menus << actions.at(i)->menu();
