Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp	(revision 85546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp	(revision 85547)
@@ -3378,4 +3378,38 @@
         setStatusTip(QApplication::translate("UIActionPool", "Show/Hide Columns"));
         setToolTip(  QApplication::translate("UIActionPool", "Show/Hide Columns")
+                   + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
+    }
+};
+
+class UIActionMenuSelectorVMResourceMonitorSwitchToMachinePerformance : public UIActionSimple
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs action passing @a pParent to the base-class. */
+    UIActionMenuSelectorVMResourceMonitorSwitchToMachinePerformance(UIActionPool *pParent)
+        : UIActionSimple(pParent,
+                         ":/cloud_console_application_remove_32px .png",          ":/cloud_console_application_remove_16px.png",
+                         ":/cloud_console_application_remove_disabled_32px.png", ":/cloud_console_application_remove_disabled_16px.png")
+    {
+        setShortcutContext(Qt::WidgetWithChildrenShortcut);
+    }
+
+protected:
+
+    /** Returns shortcut extra-data ID. */
+    virtual QString shortcutExtraDataID() const /* override */
+    {
+        return QString("VMResourceMonitorSwitchToMachinePerformance");
+    }
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */
+    {
+        setName(QApplication::translate("UIActionPool", "To Performance"));
+        setShortcutScope(QApplication::translate("UIActionPool", "Resource Manager"));
+        setStatusTip(QApplication::translate("UIActionPool", "Switch to selected machine's performance pane"));
+        setToolTip(  QApplication::translate("UIActionPool", "Switch to selected machine's performance pane")
                    + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
     }
@@ -3552,4 +3586,5 @@
     m_pool[UIActionIndexST_M_VMResourceMonitor] = new UIActionMenuVMResourceMonitor(this);
     m_pool[UIActionIndexST_M_VMResourceMonitor_M_Columns] = new UIActionMenuSelectorVMResourceMonitorToggleColumns(this);
+    m_pool[UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance] = new UIActionMenuSelectorVMResourceMonitorSwitchToMachinePerformance(this);
 
     /* 'Group' action groups: */
@@ -4213,4 +4248,5 @@
     pMenu->clear();
     addAction(pMenu, action(UIActionIndexST_M_VMResourceMonitor_M_Columns));
+    addAction(pMenu, action(UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h	(revision 85546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h	(revision 85547)
@@ -196,4 +196,5 @@
     UIActionIndexST_M_VMResourceMonitor,
     UIActionIndexST_M_VMResourceMonitor_M_Columns,
+    UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance,
 
     /* Maximum index: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 85546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 85547)
@@ -782,4 +782,5 @@
                 {
                     m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_VMResourceMonitor_M_Columns));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance));
                     QToolButton *pButton =
                         qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexST_M_VMResourceMonitor_M_Columns)));
Index: trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp	(revision 85546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp	(revision 85547)
@@ -179,4 +179,8 @@
     Q_OBJECT;
 
+signals:
+
+    void sigSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+
 public:
 
@@ -185,8 +189,10 @@
     void updateColumVisibility();
     int selectedItemIndex() const;
+    bool hasSelection() const;
 
 protected:
 
     virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
+    virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) /* override */;
 
 private slots:
@@ -692,8 +698,21 @@
 }
 
+bool UIVMResourceMonitorTableView::hasSelection() const
+{
+    if (!selectionModel())
+        return false;
+    return selectionModel()->hasSelection();
+}
+
 void UIVMResourceMonitorTableView::resizeEvent(QResizeEvent *pEvent)
 {
     resizeHeaders();
     QTableView::resizeEvent(pEvent);
+}
+
+void UIVMResourceMonitorTableView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
+{
+    emit sigSelectionChanged(selected, deselected);
+    QTableView::selectionChanged(selected, deselected);
 }
 
@@ -1292,4 +1311,13 @@
 }
 
+void UIResourceMonitorWidget::showEvent(QShowEvent *pEvent)
+{
+    QAction *pSwitchAction = m_pActionPool->action(UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance);
+    if (pSwitchAction && m_pTableView)
+        pSwitchAction->setEnabled(m_pTableView->hasSelection());
+
+    QIWithRetranslateUI<QWidget>::showEvent(pEvent);
+}
+
 void UIResourceMonitorWidget::prepare()
 {
@@ -1362,5 +1390,6 @@
         connect(m_pTableView, &UIVMResourceMonitorTableView::customContextMenuRequested,
                 this, &UIResourceMonitorWidget::sltHandleTableContextMenuRequest);
-
+        connect(m_pTableView, &UIVMResourceMonitorTableView::sigSelectionChanged,
+                this, &UIResourceMonitorWidget::sltHandleTableSelectionChanged);
         updateModelColumVisibilityCache();
     }
@@ -1390,4 +1419,7 @@
     m_pShowPerformanceMonitorAction = new QAction(this);
     connect(m_pShowPerformanceMonitorAction, &QAction::triggered, this, &UIResourceMonitorWidget::sltHandleShowPerformanceMonitor);
+    QAction *pSwitchAction = m_pActionPool->action(UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance);
+    if (pSwitchAction)
+        connect(pSwitchAction, &QAction::triggered, this, &UIResourceMonitorWidget::sltHandleShowPerformanceMonitor);
 }
 
@@ -1472,5 +1504,5 @@
 void UIResourceMonitorWidget::sltHandleTableContextMenuRequest(const QPoint &pos)
 {
-    if (!m_pTableView)
+    if (!m_pTableView || !m_pTableView->hasSelection())
         return;
 
@@ -1480,4 +1512,12 @@
 
     menu.exec(m_pTableView->mapToGlobal(pos));
+}
+
+void UIResourceMonitorWidget::sltHandleTableSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
+{
+    Q_UNUSED(deselected);
+    QAction *pSwitchAction = m_pActionPool->action(UIActionIndexST_M_VMResourceMonitor_S_SwitchToMachinePerformance);
+    if (pSwitchAction)
+        pSwitchAction->setEnabled(!selected.isEmpty());
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h	(revision 85546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h	(revision 85547)
@@ -32,4 +32,5 @@
 class QAbstractButton;
 class QFrame;
+class QItemSelection;
 class QLabel;
 class QTableView;
@@ -73,4 +74,5 @@
       * @{ */
         virtual void retranslateUi() /* override */;
+        virtual void showEvent(QShowEvent *pEvent) /* override */;
     /** @} */
 
@@ -83,4 +85,5 @@
     void sltHandleTableContextMenuRequest(const QPoint &pos);
     void sltHandleShowPerformanceMonitor();
+    void sltHandleTableSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
 
 private:
