compiz/compiz_always_unredirect_screensaver_on_nvidia.patch
raveit 85a4272321 do some major changes
- disable mateconf and use libini text file configuration backend
- remove mateconf from scriptlet section
- move glib annotate svg plugins to core package
- disable gtk-windows-decorator
- drop compiz-mate-gtk compiz session script
- disable gtk-windows-decorator patches
- disable marco/metacity
- disable mate/gnome
- disable mate/gnome keybindings
- insert compiz-mate-emerald compiz session script
- insert compiz-xfce-emerald compiz session script
- insert compiz-lxde-emerald compiz session script
- add emerald as require
- add matecompat icon
- add icon cache scriptlets
2012-12-25 19:33:43 +01:00

33 lines
1.3 KiB
Diff

Author: Travis Watkins <amaranth@ubuntu.com>
Description: Always unredirect mate-screensaver when using nvidia
Workaround for LP #160264 while still disabling unredirect fullscreen
windows for nvidia users
Origin: vendor, ubuntu (1:0.8.3+git20090917-0ubuntu4)
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/160264
--- a/src/paint.c
+++ b/src/paint.c
@@ -262,6 +262,7 @@ paintOutputRegion (CompScreen *sc
CompTransform vTransform;
int offX, offY;
Region clip = region;
+ int dontcare;
if (!tmpRegion)
{
@@ -341,8 +342,14 @@ paintOutputRegion (CompScreen *sc
XSubtractRegion (tmpRegion, w->region, tmpRegion);
/* unredirect top most fullscreen windows. */
+ /* if the fullscreen window is mate-screensaver and we're
+ on nvidia we want to always unredirect even if this
+ option is disabled to work around LP #160264 */
if (count == 0 &&
- screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b)
+ (screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b ||
+ (w->resName && !strcmp(w->resName, "mate-screensaver") &&
+ XQueryExtension (screen->display->display, "NV-GLX",
+ &dontcare, &dontcare, &dontcare))))
{
if (XEqualRegion (w->region, &screen->region) &&
!REGION_NOT_EMPTY (tmpRegion))