http://ftp.x.org/contrib/applications/xscreensaver-3.26.tar.gz
[xscreensaver] / hacks / shadebobs.c
index 670d667750f6abd2e445212f7dc1634913edc2bd..d384605add37067ddf55db4ccc62a4b5b945982a 100644 (file)
@@ -384,13 +384,17 @@ void screenhack(Display *pDisplay, Window Win )
 
                if( i++ >= cycles )
                {
+                        XWindowAttributes XWinAttribs;
+                        XGetWindowAttributes( pDisplay, Win, &XWinAttribs );
+
                        i = 0;
-                       XClearWindow( pDisplay, Win );
                        memset( pImage->data, 0, pImage->bytes_per_line * pImage->height );
                        for( iShadeBob=0; iShadeBob<nShadeBobCount; iShadeBob++ )
                                ResetShadeBob( &aShadeBobs[ iShadeBob ] );
+                        XFreeColors( pDisplay, XWinAttribs.colormap, aiColorVals, iColorCount, 0 );
                        free( aiColorVals );
                        aiColorVals = SetPalette( pDisplay, Win, sColor, &iColorCount );
+                        XClearWindow( pDisplay, Win );
                }
 
                for( iShadeBob=0; iShadeBob<nShadeBobCount; iShadeBob++ )