X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fstrange.c;h=b1739acd534a7977e46bdd7c05de57c5325261d1;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=eba88a90c08f7c53c27b5eb55884373b05afe685;hpb=ec8d2b32b63649e6d32bdfb306eda062769af823;p=xscreensaver diff --git a/hacks/strange.c b/hacks/strange.c index eba88a90..b1739acd 100644 --- a/hacks/strange.c +++ b/hacks/strange.c @@ -38,12 +38,11 @@ static const char sccsid[] = "@(#)strange.c 5.00 2000/11/01 xlockmore"; # define MODE_strange # define DEFAULTS "*delay: 10000 \n" \ "*ncolors: 100 \n" \ - "*fpsSolid: True \n" + "*fpsSolid: True \n" \ + "*ignoreRotation: True \n" \ # define SMOOTH_COLORS # define refresh_strange 0 -# define reshape_strange 0 -# define strange_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ # include "xlock.h" /* from the xlockmore distribution */ @@ -83,7 +82,7 @@ ModStruct strange_description = "Shows strange attractors", 0, NULL}; #endif -#ifdef HAVE_COCOA +#ifdef HAVE_JWXYZ # define NO_DBUF #endif @@ -142,7 +141,7 @@ typedef struct _ATTRACTOR { static ATTRACTOR *Root = (ATTRACTOR *) NULL; #ifdef useAccumulator -XColor* cols; +static XColor* cols; #endif #ifdef POINTS_HISTORY @@ -578,18 +577,18 @@ init_strange(ModeInfo * mi) gcv.foreground = 0; gcv.background = 0; -#ifndef HAVE_COCOA +#ifndef HAVE_JWXYZ gcv.graphics_exposures = False; -#endif /* HAVE_COCOA */ +#endif /* HAVE_JWXYZ */ gcv.function = GXcopy; if (Attractor->dbuf_gc != None) XFreeGC(display, Attractor->dbuf_gc); if ((Attractor->dbuf_gc = XCreateGC(display, Attractor->dbuf, -#ifndef HAVE_COCOA +#ifndef HAVE_JWXYZ GCGraphicsExposures | -#endif /* HAVE_COCOA */ +#endif /* HAVE_JWXYZ */ GCFunction | GCForeground | GCBackground, &gcv)) == None) { XFreePixmap(display, Attractor->dbuf); @@ -663,6 +662,13 @@ init_strange(ModeInfo * mi) XSetGraphicsExposures(display, MI_GC(mi), False); } +ENTRYPOINT void +reshape_strange(ModeInfo * mi, int width, int height) +{ + XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi)); + init_strange (mi); +} + /***************************************************************/ ENTRYPOINT void @@ -690,6 +696,18 @@ release_strange(ModeInfo * mi) } } +ENTRYPOINT Bool +strange_handle_event (ModeInfo *mi, XEvent *event) +{ + if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) + { + reshape_strange (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + return True; + } + return False; +} + + XSCREENSAVER_MODULE ("Strange", strange) #endif /* MODE_strange */