Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 75338)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 75339)
@@ -3230,16 +3230,18 @@
     AssertPtrReturnVoid(pMenu);
 
-    /* Call to corresponding handler: */
-    updateMenuViewScreen(pMenu);
-}
-
-void UIActionPoolRuntime::sltPrepareMenuViewMultiscreen()
-{
-    /* Make sure sender is valid: */
-    QMenu *pMenu = qobject_cast<QMenu*>(sender());
-    AssertPtrReturnVoid(pMenu);
-
-    /* Call to corresponding handler: */
-    updateMenuViewMultiscreen(pMenu);
+    const bool fAllowToShowActionResize = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_Resize);
+    const bool fAllowToShowActionScaleFactor = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_ScaleFactor);
+    const bool fAllowToShowActionMultiscreen = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_Multiscreen);
+
+    /* Clear contents: */
+    pMenu->clear();
+
+    /* Resize, scale factor, and multiscreen menu items are inserted into the same sub-menu: */
+    if (fAllowToShowActionResize)
+        updateMenuViewScreen(pMenu);
+    if (fAllowToShowActionScaleFactor)
+        updateMenuViewScaleFactor(pMenu);
+    if (fAllowToShowActionMultiscreen && m_cHostScreens > 1)
+        updateMenuViewMultiscreen(pMenu);
 }
 
@@ -3687,8 +3689,10 @@
     }
 
-    /* Do we have to show resize or multiscreen menu? */
+    /* Do we have to show resize, scale factor, or multiscreen menu? */
     const bool fAllowToShowActionResize = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_Resize);
+    const bool fAllowToShowActionScaleFactor = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_ScaleFactor);
     const bool fAllowToShowActionMultiscreen = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_Multiscreen);
-    if (fAllowToShowActionResize)
+
+    if (fAllowToShowActionResize || fAllowToShowActionScaleFactor || fAllowToShowActionMultiscreen)
     {
         for (int iGuestScreenIndex = 0; iGuestScreenIndex < m_cGuestScreens; ++iGuestScreenIndex)
@@ -3702,20 +3706,4 @@
         }
     }
-    else if (fAllowToShowActionMultiscreen)
-    {
-        /* Only for multi-screen host case: */
-        if (m_cHostScreens > 1)
-        {
-            for (int iGuestScreenIndex = 0; iGuestScreenIndex < m_cGuestScreens; ++iGuestScreenIndex)
-            {
-                /* Add 'Virtual Screen %1' menu: */
-                QMenu *pSubMenu = pMenu->addMenu(UIIconPool::iconSet(":/virtual_screen_16px.png",
-                                                                     ":/virtual_screen_disabled_16px.png"),
-                                                 QApplication::translate("UIMultiScreenLayout", "Virtual Screen %1").arg(iGuestScreenIndex + 1));
-                pSubMenu->setProperty("Guest Screen Index", iGuestScreenIndex);
-                connect(pSubMenu, SIGNAL(aboutToShow()), this, SLOT(sltPrepareMenuViewMultiscreen()));
-            }
-        }
-    }
 
     /* Mark menu as valid: */
@@ -3748,5 +3736,6 @@
     /* Do we have to show resize menu? */
     const bool fAllowToShowActionResize = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_Resize);
-    if (fAllowToShowActionResize)
+    const bool fAllowToShowActionScaleFactor = isAllowedInMenuView(UIExtraDataMetaDefs::RuntimeMenuViewActionType_ScaleFactor);
+    if (fAllowToShowActionResize || fAllowToShowActionScaleFactor)
     {
         for (int iGuestScreenIndex = 0; iGuestScreenIndex < m_cGuestScreens; ++iGuestScreenIndex)
@@ -3760,5 +3749,4 @@
         }
     }
-
     /* Mark menu as valid: */
     m_invalidations.remove(UIActionIndexRT_M_ViewPopup);
@@ -3913,7 +3901,5 @@
 void UIActionPoolRuntime::updateMenuViewScreen(QMenu *pMenu)
 {
-    /* Clear contents: */
-    pMenu->clear();
-
+    AssertPtrReturnVoid(pMenu);
     /* Prepare new contents: */
     const QList<QSize> sizes = QList<QSize>()
@@ -3984,12 +3970,9 @@
                 this, SLOT(sltHandleActionTriggerViewScreenResize(QAction*)));
     }
-    updateMenuViewScaleFactor(pMenu);
 }
 
 void UIActionPoolRuntime::updateMenuViewMultiscreen(QMenu *pMenu)
 {
-    /* Clear contents: */
-    pMenu->clear();
-
+    AssertPtrReturnVoid(pMenu);
     /* Get corresponding screen index and size: */
     const int iGuestScreenIndex = pMenu->property("Guest Screen Index").toInt();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h	(revision 75338)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h	(revision 75339)
@@ -206,6 +206,4 @@
     /** Prepares 'View' : 'Virtual Screen #' menu (Normal, Scale). */
     void sltPrepareMenuViewScreen();
-    /** Prepares 'View' : 'Virtual Screen #' menu (Fullscreen, Seamless). */
-    void sltPrepareMenuViewMultiscreen();
 
     /** Handles 'View' : 'Virtual Screen #' menu : 'Toggle' action trigger. */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp	(revision 75338)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp	(revision 75339)
@@ -351,4 +351,15 @@
 #endif /* !VBOX_WS_MAC */
 
+void UIMachineLogicNormal::prepareActionGroups()
+{
+    /* Call to base-class: */
+    UIMachineLogic::prepareActionGroups();
+
+    /* Restrict 'Adjust Window', 'Guest Autoresize', 'Status Bar' and 'Resize' actions for 'View' menu: */
+    actionPool()->toRuntime()->setRestrictionForMenuView(UIActionRestrictionLevel_Logic,
+                                                         (UIExtraDataMetaDefs::RuntimeMenuViewActionType)
+                                                         (UIExtraDataMetaDefs::RuntimeMenuViewActionType_Multiscreen));
+}
+
 void UIMachineLogicNormal::cleanupMachineWindows()
 {
@@ -388,3 +399,2 @@
     UIMachineLogic::cleanupActionConnections();
 }
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.h	(revision 75338)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.h	(revision 75339)
@@ -75,4 +75,5 @@
 
     /* Prepare helpers: */
+    virtual void prepareActionGroups() /* override */;
     void prepareActionConnections();
     void prepareMachineWindows();
@@ -98,3 +99,2 @@
 
 #endif /* !___UIMachineLogicNormal_h___ */
-
