X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fslidescreen.c;h=e31bcf0dda9e60ba20d340c02f1c576e9ba83d5b;hb=8eb2873d7054e705c4e83f22d18c40946a9e2529;hp=f910dbe7eb9ac15b13dec02d8d5ff3e7b139fafd;hpb=5b7bc6e70fb439cf4c4bf771ae9f94077fe4fe08;p=xscreensaver diff --git a/hacks/slidescreen.c b/hacks/slidescreen.c index f910dbe7..e31bcf0d 100644 --- a/hacks/slidescreen.c +++ b/hacks/slidescreen.c @@ -1,5 +1,5 @@ -/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1996, 1997 - * Jamie Zawinski +/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1996, 1997, 1998, 2001 + * Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -37,8 +37,6 @@ init_slide (Display *dpy, Window window) XGetWindowAttributes (dpy, window, &xgwa); grab_screen_image (xgwa.screen, window); - - XGetWindowAttributes (dpy, window, &xgwa); /* re-retrieve colormap */ cmap = xgwa.colormap; visual = xgwa.visual; max_width = xgwa.width; @@ -50,6 +48,12 @@ init_slide (Display *dpy, Window window) pix_inc = get_integer_resource ("pixelIncrement", "Integer"); border = get_integer_resource ("internalBorderWidth", "InternalBorderWidth"); + /* Don't let the grid be smaller than 3x3 */ + if (grid_size > xgwa.width / 3) + grid_size = xgwa.width / 3; + if (grid_size > xgwa.height / 3) + grid_size = xgwa.height / 3; + { XColor fgc, bgc; char *fgs = get_string_resource("background", "Background"); @@ -142,7 +146,7 @@ init_slide (Display *dpy, Window window) if (delay < 0) delay = 0; if (delay2 < 0) delay2 = 0; if (pix_inc < 1) pix_inc = 1; - if (grid_size < 1) grid_size = 1; + if (grid_size < 10) grid_size = 10; gcv.foreground = fg; gcv.function = GXcopy; @@ -197,7 +201,7 @@ init_slide (Display *dpy, Window window) XFillRectangle (dpy, d, gc, 0, bitmap_h - yoff, bitmap_w, yoff); } - XSync (dpy, True); + XSync (dpy, False); if (delay2) usleep (delay2 * 2); for (i = 0; i < grid_size; i += pix_inc) { @@ -228,7 +232,7 @@ init_slide (Display *dpy, Window window) points[2].y = points[1].y; XFillPolygon (dpy, window, gc, points, 3, Convex, CoordModeOrigin); - XSync (dpy, True); + XSync (dpy, False); if (delay) usleep (delay); } @@ -309,7 +313,7 @@ slide1 (Display *dpy, Window window) break; } - XSync (dpy, True); + XSync (dpy, False); if (delay) usleep (delay); } switch (dir) @@ -331,8 +335,8 @@ char *defaults [] = { "*visualID: Best", #endif - "SlidePuzzle.background: Black", - "SlidePuzzle.foreground: Gray", + ".background: Black", + ".foreground: Gray", "*gridSize: 70", "*pixelIncrement: 10", "*internalBorderWidth: 4", @@ -357,6 +361,7 @@ screenhack (Display *dpy, Window window) while (1) { slide1 (dpy, window); + screenhack_handle_events (dpy); if (delay2) usleep (delay2); } }