Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp	(revision 58880)
@@ -19,13 +19,12 @@
 #include <QApplication>
 #include <QDesktopWidget>
-#ifdef Q_WS_X11
-# include <QX11Info>
-#endif /* Q_WS_X11 */
 
 /* GUI includes: */
+#include "VBoxGlobal.h"
 #include "UIDesktopWidgetWatchdog.h"
 
 /* Other VBox includes: */
 #include <iprt/assert.h>
+
 
 /** QWidget extension used as
@@ -67,5 +66,5 @@
 #ifdef Q_WS_X11
     /* For composite WMs make this 1 pixel transparent: */
-    if (QX11Info::isCompositingManagerRunning())
+    if (vboxGlobal().isCompositingManagerRunning())
         setAttribute(Qt::WA_TranslucentBackground);
 #else /* !Q_WS_X11 */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 58880)
@@ -231,4 +231,5 @@
     , m_pMediumEnumerator(0)
 #ifdef Q_WS_X11
+    , m_fCompositingManagerRunning(false)
     , m_enmWindowManagerType(X11WMType_Unknown)
     , m_pDesktopWidgetWatchdog(0)
@@ -3365,5 +3366,5 @@
 bool VBoxGlobal::setFullScreenMonitorX11(QWidget *pWidget, ulong uScreenId)
 {
-    return XXSendClientMessage(pWidget->x11Info().display(),
+    return XXSendClientMessage(QX11Info::display(),
                                pWidget->window()->winId(),
                                "_NET_WM_FULLSCREEN_MONITORS",
@@ -3376,5 +3377,5 @@
 {
     /* Get display: */
-    Display *pDisplay = pWidget->x11Info().display();
+    Display *pDisplay = QX11Info::display();
 
     /* Prepare atoms: */
@@ -3420,5 +3421,5 @@
 {
     /* Get display: */
-    Display *pDisplay = pWidget->x11Info().display();
+    Display *pDisplay = QX11Info::display();
 
     /* Prepare atoms: */
@@ -3433,5 +3434,5 @@
 {
     /* Get display: */
-    Display *pDisplay = pWidget->x11Info().display();
+    Display *pDisplay = QX11Info::display();
 
     /* Prepare atoms: */
@@ -4048,4 +4049,7 @@
 
 #ifdef Q_WS_X11
+    /* Check whether we have compositing manager running: */
+    m_fCompositingManagerRunning = X11IsCompositingManagerRunning();
+
     /* Acquire current Window Manager type: */
     m_enmWindowManagerType = X11WindowManagerType();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 58880)
@@ -207,4 +207,6 @@
 
 #ifdef Q_WS_X11
+    /** X11: Returns whether the Window Manager we are running at is composition one. */
+    bool isCompositingManagerRunning() const { return m_fCompositingManagerRunning; }
     /** X11: Returns the type of the Window Manager we are running under. */
     X11WMType typeOfWindowManager() const { return m_enmWindowManagerType; }
@@ -568,4 +570,6 @@
 
 #ifdef Q_WS_X11
+    /** X11: Holds whether the Window Manager we are running at is composition one. */
+    bool m_fCompositingManagerRunning;
     /** X11: Holds the type of the Window Manager we are running under. */
     X11WMType m_enmWindowManagerType;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp	(revision 58880)
@@ -36,4 +36,14 @@
 static BOOL gX11ScreenSaverDpmsAvailable;
 static BOOL gX11DpmsState;
+
+bool X11IsCompositingManagerRunning()
+{
+    /* Get display: */
+    Display *pDisplay = QX11Info::display();
+    /* For each screen it manage, compositing manager MUST acquire ownership
+     * of a selection named _NET_WM_CM_Sn, where n is the screen number. */
+    Atom atom_property_name = XInternAtom(pDisplay, "_NET_WM_CM_S0", True);
+    return XGetSelectionOwner(pDisplay, atom_property_name);
+}
 
 X11WMType X11WindowManagerType()
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.h	(revision 58880)
@@ -30,4 +30,7 @@
 };
 
+/** X11: Determines and returns whether the compositing manager is running. */
+bool X11IsCompositingManagerRunning();
+
 /** X11: Determines and returns current Window Manager type. */
 X11WMType X11WindowManagerType();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISlidingToolBar.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISlidingToolBar.cpp	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISlidingToolBar.cpp	(revision 58880)
@@ -24,9 +24,7 @@
 # include <QHBoxLayout>
 # include <QMdiArea>
-# ifdef Q_WS_X11
-#  include <QX11Info>
-# endif /* Q_WS_X11 */
 
 /* GUI includes: */
+# include "VBoxGlobal.h"
 # include "UISlidingToolBar.h"
 # include "UIAnimationFramework.h"
@@ -80,5 +78,5 @@
     setAttribute(Qt::WA_TranslucentBackground);
 #elif defined(Q_WS_X11)
-    if (QX11Info::isCompositingManagerRunning())
+    if (vboxGlobal().isCompositingManagerRunning())
     {
         /* Use Qt API to enable translucency: */
@@ -157,5 +155,5 @@
 
 #ifdef Q_WS_X11
-    if (!QX11Info::isCompositingManagerRunning())
+    if (!vboxGlobal().isCompositingManagerRunning())
     {
         /* Use Xshape otherwise: */
@@ -214,5 +212,5 @@
 
 #ifdef Q_WS_X11
-    if (!QX11Info::isCompositingManagerRunning())
+    if (!vboxGlobal().isCompositingManagerRunning())
     {
         /* Use Xshape otherwise: */
@@ -306,5 +304,5 @@
 
 #ifdef Q_WS_X11
-    if (!QX11Info::isCompositingManagerRunning())
+    if (!vboxGlobal().isCompositingManagerRunning())
     {
         /* Use Xshape otherwise: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp	(revision 58879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp	(revision 58880)
@@ -30,7 +30,4 @@
 # include <QStateMachine>
 # include <QPainter>
-# ifdef Q_WS_X11
-#  include <QX11Info>
-# endif /* Q_WS_X11 */
 
 /* GUI includes: */
@@ -276,5 +273,5 @@
     /* Left margin: */
 #ifdef Q_WS_X11
-    if (QX11Info::isCompositingManagerRunning())
+    if (vboxGlobal().isCompositingManagerRunning())
         m_spacings << widgetForAction(addWidget(new QWidget));
 #else /* !Q_WS_X11 */
@@ -331,5 +328,5 @@
     /* Right margin: */
 #ifdef Q_WS_X11
-    if (QX11Info::isCompositingManagerRunning())
+    if (vboxGlobal().isCompositingManagerRunning())
         m_spacings << widgetForAction(addWidget(new QWidget));
 #else /* !Q_WS_X11 */
@@ -344,5 +341,5 @@
 {
 #ifdef Q_WS_X11
-    if (!QX11Info::isCompositingManagerRunning())
+    if (!vboxGlobal().isCompositingManagerRunning())
         return;
 #endif /* Q_WS_X11 */
@@ -553,5 +550,5 @@
 #elif defined(Q_WS_X11)
     /* Enable translucency through Qt API if supported: */
-    if (QX11Info::isCompositingManagerRunning())
+    if (vboxGlobal().isCompositingManagerRunning())
         setAttribute(Qt::WA_TranslucentBackground);
 #endif /* Q_WS_X11 */
