--- beryl-core-0.2.1/src/screen.c +++ beryl-core-0.2.1/src/screen.c @@ -2236,7 +2236,8 @@ CompWindow *findTopLevelWindowAtScreen(C for (w = s->windows; w; w = w->next) if (w->frame == id) return w; - } + } else if (found->resName && strstr(found->resName,"screensaver")) + return found; return NULL; } --- beryl-core-0.2.1/src/paint.c +++ beryl-core-0.2.1/src/paint.c @@ -564,7 +564,8 @@ paintScreen(CompScreen * screen, !REGION_NOT_EMPTY(tmpRegion) && screen-> opt[COMP_SCREEN_OPTION_UNREDIRECT_FS]. - value.b && XEqualRegion(w->region, &screen->region))) + value.b && XEqualRegion(w->region, &screen->region) && + !(w->resName && strcmp(w->resName, "gnome-screensaver") == 0))) { unredirectWindow(w); }