summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdebase/optional-compmgr.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/core/tdebase/optional-compmgr.diff')
-rw-r--r--opensuse/core/tdebase/optional-compmgr.diff32
1 files changed, 32 insertions, 0 deletions
diff --git a/opensuse/core/tdebase/optional-compmgr.diff b/opensuse/core/tdebase/optional-compmgr.diff
new file mode 100644
index 000000000..d0affeed9
--- /dev/null
+++ b/opensuse/core/tdebase/optional-compmgr.diff
@@ -0,0 +1,32 @@
+Index: kwin/workspace.cpp
+===================================================================
+--- kwin/workspace.cpp.orig
++++ 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 :(
+
+@@ -199,6 +210,9 @@ Workspace::Workspace( bool restore )
+ connect( kapp->desktop(), SIGNAL( resized( int )), 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)
+ {