Index: /trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp	(revision 83609)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.cpp	(revision 83610)
@@ -1271,6 +1271,6 @@
     , m_pProxyModel(0)
     , m_pModel(0)
+    , m_pColumnVisibilityToggleMenu(0)
     , m_pHostStatsWidget(0)
-    , m_pColumnSelectionMenu(0)
     , m_fIsCurrentTool(true)
 {
@@ -1287,4 +1287,9 @@
 {
     return NULL;
+}
+
+QMenu *UIResourceMonitorWidget::columnVisiblityToggleMenu() const
+{
+    return m_pColumnVisibilityToggleMenu;
 }
 
@@ -1403,33 +1408,40 @@
 void UIResourceMonitorWidget::prepareActions()
 {
+    m_pColumnVisibilityToggleMenu = new QMenu(this);
+    for (int i = 0; i < VMResourceMonitorColumn_Max; ++i)
+    {
+        QAction *pAction = m_pColumnVisibilityToggleMenu->addAction(m_columnCaptions[i]);
+        pAction->setCheckable(true);
+    }
+
     connect(m_pActionPool->action(UIActionIndexST_M_VMResourceMonitor_T_Columns), &QAction::toggled,
             this, &UIResourceMonitorWidget::sltToggleColumnSelectionMenu);
-    m_pColumnSelectionMenu  = new QFrame(this);
-    m_pColumnSelectionMenu->setAutoFillBackground(true);
-    m_pColumnSelectionMenu->setFrameStyle(QFrame::Panel | QFrame::Plain);
-    m_pColumnSelectionMenu->hide();
-    QVBoxLayout* pLayout = new QVBoxLayout(m_pColumnSelectionMenu);
-    int iLength = 0;
-    for (int i = 0; i < VMResourceMonitorColumn_Max; ++i)
-    {
-        UIVMResourceMonitorCheckBox* pCheckBox = new UIVMResourceMonitorCheckBox;
-        QString strCaption = m_columnCaptions.value((VMResourceMonitorColumn)i, QString());
-        pCheckBox->setText(strCaption);
-        iLength = strCaption.length() > iLength ? strCaption.length() : iLength;
-        if (!pCheckBox)
-            continue;
-        pLayout->addWidget(pCheckBox);
-        pCheckBox->setData(i);
-        pCheckBox->setChecked(columnVisible(i));
-        if (i == (int)VMResourceMonitorColumn_Name)
-            pCheckBox->setEnabled(false);
-        connect(pCheckBox, &UIVMResourceMonitorCheckBox::toggled, this, &UIResourceMonitorWidget::sltHandleColumnAction);
-    }
-    QFontMetrics fontMetrics(m_pColumnSelectionMenu->font());
-    int iWidth = iLength * fontMetrics.width('x') +
-        QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth) +
-        2 * QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin) +
-        2 * QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin);
-    m_pColumnSelectionMenu->setFixedWidth(iWidth);
+    return;
+//     m_pColumnSelectionMenu->setAutoFillBackground(true);
+//     m_pColumnSelectionMenu->setFrameStyle(QFrame::Panel | QFrame::Plain);
+//     m_pColumnSelectionMenu->hide();
+//     QVBoxLayout* pLayout = new QVBoxLayout(m_pColumnSelectionMenu);
+//     int iLength = 0;
+//     for (int i = 0; i < VMResourceMonitorColumn_Max; ++i)
+//     {
+//         UIVMResourceMonitorCheckBox* pCheckBox = new UIVMResourceMonitorCheckBox;
+//         QString strCaption = m_columnCaptions.value((VMResourceMonitorColumn)i, QString());
+//         pCheckBox->setText(strCaption);
+//         iLength = strCaption.length() > iLength ? strCaption.length() : iLength;
+//         if (!pCheckBox)
+//             continue;
+//         pLayout->addWidget(pCheckBox);
+//         pCheckBox->setData(i);
+//         pCheckBox->setChecked(columnVisible(i));
+//         if (i == (int)VMResourceMonitorColumn_Name)
+//             pCheckBox->setEnabled(false);
+//         connect(pCheckBox, &UIVMResourceMonitorCheckBox::toggled, this, &UIResourceMonitorWidget::sltHandleColumnAction);
+//     }
+//     QFontMetrics fontMetrics(m_pColumnSelectionMenu->font());
+//     int iWidth = iLength * fontMetrics.width('x') +
+//         QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth) +
+//         2 * QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin) +
+//         2 * QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin);
+//     m_pColumnSelectionMenu->setFixedWidth(iWidth);
 }
 
@@ -1485,19 +1497,24 @@
 void UIResourceMonitorWidget::sltToggleColumnSelectionMenu(bool fChecked)
 {
-    if (!m_pColumnSelectionMenu)
+    (void)fChecked;
+    if (!m_pColumnVisibilityToggleMenu)
         return;
-    m_pColumnSelectionMenu->setVisible(fChecked);
-
-    if (fChecked)
-    {
-        m_pColumnSelectionMenu->move(0, 0);
-        m_pColumnSelectionMenu->raise();
-        m_pColumnSelectionMenu->resize(400, 400);
-        m_pColumnSelectionMenu->show();
-        m_pColumnSelectionMenu->setFocus();
-    }
-    else
-        m_pColumnSelectionMenu->hide();
-    update();
+    m_pColumnVisibilityToggleMenu->exec(this->mapToGlobal(QPoint(0,0)));
+
+    // if (!m_pColumnSelectionMenu)
+    //     return;
+    // m_pColumnSelectionMenu->setVisible(fChecked);
+
+    // if (fChecked)
+    // {
+    //     m_pColumnSelectionMenu->move(0, 0);
+    //     m_pColumnSelectionMenu->raise();
+    //     m_pColumnSelectionMenu->resize(400, 400);
+    //     m_pColumnSelectionMenu->show();
+    //     m_pColumnSelectionMenu->setFocus();
+    // }
+    // else
+    //     m_pColumnSelectionMenu->hide();
+    //update();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h	(revision 83609)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/monitor/resource/UIResourceMonitor.h	(revision 83610)
@@ -57,4 +57,5 @@
                                bool fShowToolbar = true, QWidget *pParent = 0);
     ~UIResourceMonitorWidget();
+    QMenu *columnVisiblityToggleMenu() const;
     QMenu *menu() const;
 
@@ -115,4 +116,5 @@
         UIResourceMonitorProxyModel        *m_pProxyModel;
         UIResourceMonitorModel             *m_pModel;
+        QMenu                              *m_pColumnVisibilityToggleMenu;
         /* The key is the column id (VMResourceMonitorColumn) and value is column title. */
         QMap<int, QString>                  m_columnCaptions;
@@ -123,5 +125,4 @@
 
     /** @} */
-    QFrame *m_pColumnSelectionMenu;
     /** Indicates if this widget's host tool is current tool. */
     bool    m_fIsCurrentTool;
