st->delay = get_integer_resource(st->dpy, "delay", "Integer");
st->duration = get_integer_resource (st->dpy, "duration", "Seconds");
st->delay = get_integer_resource(st->dpy, "delay", "Integer");
st->duration = get_integer_resource (st->dpy, "duration", "Seconds");
st->speed = get_integer_resource(st->dpy, "speed", "Integer");
st->number = get_integer_resource(st->dpy, "number", "Integer");
st->speed = get_integer_resource(st->dpy, "speed", "Integer");
st->number = get_integer_resource(st->dpy, "number", "Integer");
- if (st->delay < 0) st->delay = 0;
- if (st->duration < 1) st->duration = 1;
-
-#ifdef HAVE_XSHM_EXTENSION
- st->use_shm = get_boolean_resource(st->dpy, "useSHM", "Boolean");
-#endif /* HAVE_XSHM_EXTENSION */
-
st->blackhole = get_boolean_resource(st->dpy, "blackhole", "Boolean");
st->vortex = get_boolean_resource(st->dpy, "vortex", "Boolean");
st->magnify = get_boolean_resource(st->dpy, "magnify", "Boolean");
st->reflect = get_boolean_resource(st->dpy, "reflect", "Boolean");
st->slow = get_boolean_resource(st->dpy, "slow", "Boolean");
st->blackhole = get_boolean_resource(st->dpy, "blackhole", "Boolean");
st->vortex = get_boolean_resource(st->dpy, "vortex", "Boolean");
st->magnify = get_boolean_resource(st->dpy, "magnify", "Boolean");
st->reflect = get_boolean_resource(st->dpy, "reflect", "Boolean");
st->slow = get_boolean_resource(st->dpy, "slow", "Boolean");
st->effect = NULL;
s = get_string_resource(st->dpy, "effect", "String");
if (s && !strcasecmp(s,"swamp"))
st->effect = NULL;
s = get_string_resource(st->dpy, "effect", "String");
if (s && !strcasecmp(s,"swamp"))
else if (s && *s)
fprintf(stderr,"%s: bogus effect: %s\n", progname, s);
else if (s && *s)
fprintf(stderr,"%s: bogus effect: %s\n", progname, s);
if (st->effect == NULL && st->radius == 0 && st->speed == 0 && st->number == 0
&& !st->blackhole && !st->vortex && !st->magnify && !st->reflect) {
/* if no cmdline options are given, randomly choose one of:
if (st->effect == NULL && st->radius == 0 && st->speed == 0 && st->number == 0
&& !st->blackhole && !st->vortex && !st->magnify && !st->reflect) {
/* if no cmdline options are given, randomly choose one of:
+}
+
+static void *
+distort_init (Display *dpy, Window window)
+{
+ struct state *st = (struct state *) calloc (1, sizeof(*st));
+ XGCValues gcv;
+ long gcflags;
+
+ st->dpy = dpy;
+ st->window = window;
+
+#ifdef HAVE_XSHM_EXTENSION
+ st->use_shm = get_boolean_resource(st->dpy, "useSHM", "Boolean");
+#endif /* HAVE_XSHM_EXTENSION */
+
+ distort_reset (st);
static Bool
distort_event (Display *dpy, Window window, void *closure, XEvent *event)
{
static Bool
distort_event (Display *dpy, Window window, void *closure, XEvent *event)
{