--- xlock.c.orig.orig Sat Aug 18 11:14:33 2001 +++ xlock.c Sat Aug 18 11:15:27 2001 @@ -392,6 +392,8 @@ XColor color; int i; time_t start, now; + struct timeval drawstart, drawstop; + unsigned long drawelapsed; int orig_pause; (void) memset((char *) &mi, 0, sizeof (mi)); @@ -545,10 +547,14 @@ hack_init(&mi); do { + (void) gettimeofday(&drawstart, NULL); hack_draw(&mi); XSync(dpy, False); - if (mi.pause) - (void) usleep(mi.pause); + (void) gettimeofday(&drawstop, NULL); + drawelapsed = (drawstop.tv_sec - drawstart.tv_sec)*1000000 + + (drawstop.tv_usec - drawstart.tv_usec); + if (mi.pause > drawelapsed) + (void) usleep(mi.pause - drawelapsed); mi.pause = orig_pause; if (hack_free) {