X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fxlyap.c;h=2d43ce98450424b2c04f51b033c24efd174ef335;hb=78add6e627ee5f10e1fa6f3852602ea5066eee5a;hp=cfc4f5a5e5a19b7f0fa8de159d1d144753bd0587;hpb=c1b9b55ad8d59dc05ef55e316aebf5863e7dfa56;p=xscreensaver diff --git a/hacks/xlyap.c b/hacks/xlyap.c index cfc4f5a5..2d43ce98 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", + ".lowrez: true", "*fpsSolid: true", "*randomize: true", "*builtin: -1", @@ -78,6 +79,9 @@ static const char *xlyap_defaults [] = { "*delay: 10000", "*linger: 5", "*colors: 200", +#ifdef HAVE_MOBILE + "*ignoreRotation: True", +#endif 0 }; @@ -158,7 +162,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; @@ -178,8 +182,8 @@ typedef double (*PFD)(double,double); /*#define BACKING_PIXMAP*/ struct state { - int screen; Display *dpy; + Screen *screen; Visual *visual; Colormap cmap; @@ -552,15 +556,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], @@ -824,7 +828,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; @@ -953,6 +957,7 @@ Getkey(struct state *st, XKeyEvent *event) case 'H': print_help(st); return True; default: return False; } + } return False; } @@ -1237,7 +1242,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); } @@ -1783,6 +1787,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); @@ -1800,14 +1805,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 @@ -1875,11 +1879,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); @@ -1894,6 +1900,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; }