diff options
Diffstat (limited to 'kwin/workspace.cpp')
-rw-r--r-- | kwin/workspace.cpp | 14 |
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) { |