X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Fremote.c;h=775036ac3032899596282b3ba4321fd1ed5050da;hp=1e67c973f730ee39fe17fedf0d61e51a17ece6da;hb=50be9bb40dc60130c99ffa568e6677779904ff70;hpb=5f1f12f2a37da634000f96d18d59cc73a8814ef7 diff --git a/driver/remote.c b/driver/remote.c index 1e67c973..775036ac 100644 --- a/driver/remote.c +++ b/driver/remote.c @@ -380,7 +380,22 @@ xscreensaver_command_response (Display *dpy, Window window, &xscreensaver_command_event_p, 0)) && sleep_count++ < 10) { +# if defined(HAVE_SELECT) + /* Wait for an event, but don't wait longer than 1 sec. Note that we + might do this multiple times if an event comes in, but it wasn't + the event we're waiting for. + */ + int fd = XConnectionNumber(dpy); + fd_set rset; + struct timeval tv; + tv.tv_sec = 1; + tv.tv_usec = 0; + FD_ZERO (&rset); + FD_SET (fd, &rset); + select (fd+1, &rset, 0, 0, &tv); +# else /* !HAVE_SELECT */ sleep(1); +# endif /* !HAVE_SELECT */ } if (!got_event)