X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fslidescreen.c;h=313f0eecff0ad5bce43621e379bf91e9095caf62;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=a3859b573eded9084152b4093890463d29773d00;hpb=de460e831dc8578acfa8b72251ab9346c99c1f96;p=xscreensaver diff --git a/hacks/slidescreen.c b/hacks/slidescreen.c index a3859b57..313f0eec 100644 --- a/hacks/slidescreen.c +++ b/hacks/slidescreen.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2014 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 @@ -47,7 +47,6 @@ slidescreen_init (Display *dpy, Window window) { struct state *st = (struct state *) calloc (1, sizeof(*st)); XWindowAttributes xgwa; - Visual *visual; XGCValues gcv; long gcflags; @@ -56,9 +55,8 @@ slidescreen_init (Display *dpy, Window window) XGetWindowAttributes (st->dpy, st->window, &xgwa); st->img_loader = load_image_async_simple (0, xgwa.screen, st->window, st->window, 0, 0); - st->start_time = time ((time_t) 0); + st->start_time = time ((time_t *) 0); - visual = xgwa.visual; st->max_width = xgwa.width; st->max_height = xgwa.height; @@ -110,7 +108,7 @@ slidescreen_init (Display *dpy, Window window) else st->bg = 1; -#ifndef HAVE_COCOA +#ifndef HAVE_JWXYZ if (!fg_ok || bg_ok) { int i; @@ -169,7 +167,7 @@ slidescreen_init (Display *dpy, Window window) } XFree(all); } -#endif /* !HAVE_COCOA */ +#endif /* !HAVE_JWXYZ */ } gcv.foreground = st->fg; @@ -309,19 +307,19 @@ slidescreen_draw (Display *dpy, Window window, void *closure) { st->img_loader = load_image_async_simple (st->img_loader, 0, 0, 0, 0, 0); if (! st->img_loader) { /* just finished */ - st->start_time = time ((time_t) 0); + st->start_time = time ((time_t *) 0); draw_grid (st); } return st->delay; } if (!st->img_loader && - st->start_time + st->duration < time ((time_t) 0)) { + st->start_time + st->duration < time ((time_t *) 0)) { XWindowAttributes xgwa; XGetWindowAttributes(st->dpy, st->window, &xgwa); st->img_loader = load_image_async_simple (0, xgwa.screen, st->window, st->window, 0, 0); - st->start_time = time ((time_t) 0); + st->start_time = time ((time_t *) 0); st->draw_initted = 0; return st->delay; } @@ -427,11 +425,27 @@ static void slidescreen_reshape (Display *dpy, Window window, void *closure, unsigned int w, unsigned int h) { + struct state *st = (struct state *) closure; + st->max_width = w; + st->max_height = h; + if (! st->img_loader) { + XWindowAttributes xgwa; + XGetWindowAttributes (st->dpy, st->window, &xgwa); + st->img_loader = load_image_async_simple (0, xgwa.screen, st->window, + st->window, 0, 0); + st->start_time = time ((time_t *) 0); + } } static Bool slidescreen_event (Display *dpy, Window window, void *closure, XEvent *event) { + struct state *st = (struct state *) closure; + if (screenhack_event_helper (dpy, window, event)) + { + st->start_time = 0; + return True; + } return False; } @@ -447,6 +461,7 @@ slidescreen_free (Display *dpy, Window window, void *closure) static const char *slidescreen_defaults [] = { "*dontClearRoot: True", + "*fpsSolid: true", #ifdef __sgi /* really, HAVE_READ_DISPLAY_EXTENSION */ "*visualID: Best", @@ -460,6 +475,10 @@ static const char *slidescreen_defaults [] = { "*delay: 50000", "*delay2: 1000000", "*duration: 120", +#ifdef HAVE_MOBILE + "*ignoreRotation: True", + "*rotateImages: True", +#endif 0 }; @@ -473,4 +492,4 @@ static XrmOptionDescRec slidescreen_options [] = { { 0, 0, 0, 0 } }; -XSCREENSAVER_MODULE ("Slidescreen", slidescreen) +XSCREENSAVER_MODULE ("SlideScreen", slidescreen)