summaryrefslogtreecommitdiffstats
path: root/kwin/workspace.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/workspace.cpp')
-rw-r--r--kwin/workspace.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/kwin/workspace.cpp b/kwin/workspace.cpp
index fe008c399..bc8914f5b 100644
--- a/kwin/workspace.cpp
+++ b/kwin/workspace.cpp
@@ -59,6 +59,17 @@ KSelectionOwner* kompmgr_selection;
bool allowKompmgrRestart = TRUE;
+bool supportsCompMgr()
+{
+ int i;
+
+ bool damageExt = XQueryExtension(qt_xdisplay(), "DAMAGE", &i, &i, &i);
+ bool compositeExt = XQueryExtension(qt_xdisplay(), "Composite", &i, &i, &i);
+ bool xfixesExt = XQueryExtension(qt_xdisplay(), "XFIXES", &i, &i, &i);
+
+ return damageExt && compositeExt && xfixesExt;
+}
+
// Rikkus: This class is too complex. It needs splitting further.
// It's a nightmare to understand, especially with so few comments :(
@@ -200,6 +211,9 @@ Workspace::Workspace( bool restore )
connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized()));
#endif
+ if (!supportsCompMgr())
+ options->useTranslucency = false;
+
// start kompmgr - i wanted to put this into main.cpp, but that would prevent dcop support, as long as Application was no dcop_object
if (options->useTranslucency)
{