X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fdeluxe.c;h=09c59b37c8dab3e24a103095f4d566cde581a444;hp=7b0ac3b4f6ec427786df17f5a0cc670cf672d50a;hb=c1b9b55ad8d59dc05ef55e316aebf5863e7dfa56;hpb=de460e831dc8578acfa8b72251ab9346c99c1f96 diff --git a/hacks/deluxe.c b/hacks/deluxe.c index 7b0ac3b4..09c59b37 100644 --- a/hacks/deluxe.c +++ b/hacks/deluxe.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999-2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 1999-2008 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 @@ -120,25 +120,31 @@ draw_corners (struct state *st, Drawable w, struct throbber *t) int s = (t->size + t->thickness) / 2; XPoint points[3]; - points[0].x = 0; points[0].y = t->y - s; - points[1].x = t->x - s; points[1].y = t->y - s; - points[2].x = t->x - s; points[2].y = 0; - XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); - - points[0].x = 0; points[0].y = t->y + s; - points[1].x = t->x - s; points[1].y = t->y + s; - points[2].x = t->x - s; points[2].y = t->max_size; - XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); - - points[0].x = t->x + s; points[0].y = 0; - points[1].x = t->x + s; points[1].y = t->y - s; - points[2].x = t->max_size; points[2].y = t->y - s; - XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); + if (t->y > s) + { + points[0].x = 0; points[0].y = t->y - s; + points[1].x = t->x - s; points[1].y = t->y - s; + points[2].x = t->x - s; points[2].y = 0; + XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); + + points[0].x = t->x + s; points[0].y = 0; + points[1].x = t->x + s; points[1].y = t->y - s; + points[2].x = t->max_size; points[2].y = t->y - s; + XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); + } - points[0].x = t->x + s; points[0].y = t->max_size; - points[1].x = t->x + s; points[1].y = t->y + s; - points[2].x = t->max_size; points[2].y = t->y + s; - XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); + if (t->x > s) + { + points[0].x = 0; points[0].y = t->y + s; + points[1].x = t->x - s; points[1].y = t->y + s; + points[2].x = t->x - s; points[2].y = t->max_size; + XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); + + points[0].x = t->x + s; points[0].y = t->max_size; + points[1].x = t->x + s; points[1].y = t->y + s; + points[2].x = t->max_size; points[2].y = t->y + s; + XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin); + } } @@ -159,11 +165,6 @@ make_throbber (struct state *st, Drawable d, int w, int h, unsigned long pixel) t->speed += (((random() % t->speed) / 2) - (t->speed / 2)); if (t->speed > 0) t->speed = -t->speed; - if (random() % 4) - t->size = t->max_size; - else - t->size = t->thickness, t->speed = -t->speed; - flags = GCForeground; # ifndef HAVE_COCOA if (st->transparent_p) @@ -208,6 +209,14 @@ make_throbber (struct state *st, Drawable d, int w, int h, unsigned long pixel) default: abort(); break; } + if (t->draw == draw_circle) + t->max_size *= 1.5; + + if (random() % 4) + t->size = t->max_size; + else + t->size = t->thickness, t->speed = -t->speed; + return t; } @@ -411,7 +420,7 @@ deluxe_free (Display *dpy, Window window, void *closure) static const char *deluxe_defaults [] = { ".background: black", ".foreground: white", - "*delay: 5000", + "*delay: 10000", "*count: 5", "*thickness: 50", "*speed: 15",