X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fxlyap.c;h=cbd493794c194c607ba172dcaa13cfef1f684b1d;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=d78b81b095993f523c18bc40636e4f19c2d5ba52;hpb=49f5b54f312fe4ac2e9bc47581a72451bd0e8439;p=xscreensaver diff --git a/hacks/xlyap.c b/hacks/xlyap.c index d78b81b0..cbd49379 100644 --- a/hacks/xlyap.c +++ b/hacks/xlyap.c @@ -43,13 +43,14 @@ #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) -#ifndef HAVE_COCOA +#ifndef HAVE_JWXYZ # include #endif static const char *xlyap_defaults [] = { ".background: black", ".foreground: white", + "*fpsSolid: true", "*randomize: true", "*builtin: -1", "*minColor: 1", @@ -77,6 +78,9 @@ static const char *xlyap_defaults [] = { "*delay: 10000", "*linger: 5", "*colors: 200", +#ifdef HAVE_MOBILE + "*ignoreRotation: True", +#endif 0 }; @@ -157,7 +161,7 @@ typedef struct { #endif typedef struct { -# ifndef HAVE_COCOA +# ifndef HAVE_JWXYZ Cursor band_cursor; # endif double p_min, p_max, q_min, q_max; @@ -177,8 +181,8 @@ typedef double (*PFD)(double,double); /*#define BACKING_PIXMAP*/ struct state { - int screen; Display *dpy; + Screen *screen; Visual *visual; Colormap cmap; @@ -551,15 +555,15 @@ init_color(struct state *st) { int i; if (st->ncolors) - free_colors (st->dpy, st->cmap, st->colors, st->ncolors); + free_colors (st->screen, st->cmap, st->colors, st->ncolors); st->ncolors = st->maxcolor; - make_smooth_colormap(st->dpy, st->visual, st->cmap, + make_smooth_colormap(st->screen, st->visual, st->cmap, st->colors, &st->ncolors, True, NULL, True); for (i = 0; i < st->maxcolor; i++) { if (! st->Data_GC[i]) { XGCValues gcv; - gcv.background = BlackPixel(st->dpy, st->screen); + gcv.background = BlackPixelOfScreen(st->screen); st->Data_GC[i] = XCreateGC(st->dpy, st->canvas, GCBackground, &gcv); } XSetForeground(st->dpy, st->Data_GC[i], @@ -823,7 +827,7 @@ Getkey(struct state *st, XKeyEvent *event) unsigned char key; int i; if (XLookupString(event, (char *)&key, sizeof(key), (KeySym *)0, - (XComposeStatus *) 0) > 0) + (XComposeStatus *) 0) > 0) { if (st->reset_countdown) st->reset_countdown = st->linger; @@ -952,6 +956,7 @@ Getkey(struct state *st, XKeyEvent *event) case 'H': print_help(st); return True; default: return False; } + } return False; } @@ -1236,7 +1241,6 @@ EndRubberBand(struct state *st, image_data_t *data, XEvent *event) data->p_min += diff * delta; delta = (double)(st->width - bot.x) / (double)st->width; data->p_max -= diff * delta; - fflush(stdout); set_new_params(st, data); } @@ -1782,6 +1786,7 @@ xlyap_init (Display *d, Window window) st->width = xgwa.width; st->height = xgwa.height; st->visual = xgwa.visual; + st->screen = xgwa.screen; st->cmap = xgwa.colormap; do_defaults(st); @@ -1799,14 +1804,13 @@ xlyap_init (Display *d, Window window) if (builtin >= 0) do_preset (st, builtin); - st->screen = DefaultScreen(st->dpy); - st->background = BlackPixel(st->dpy, st->screen); + st->background = BlackPixelOfScreen(st->screen); setupmem(st); init_data(st); if (!mono_p) st->foreground = st->startcolor; else - st->foreground = WhitePixel(st->dpy, st->screen); + st->foreground = WhitePixelOfScreen(st->screen); /* * Create the window to display the Lyapunov exponents @@ -1874,11 +1878,13 @@ static Bool xlyap_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; + switch(event->type) { case KeyPress: - return Getkey(st, &event->xkey); - return True; + if (Getkey(st, &event->xkey)) + return True; + break; #if 0 case ButtonPress: StartRubberBand(st, &st->rubber_data, event); @@ -1893,6 +1899,13 @@ xlyap_event (Display *dpy, Window window, void *closure, XEvent *event) default: break; } + + if (screenhack_event_helper (dpy, window, event)) + { + Clear(st); + return True; + } + return False; }