Corrected thumbnail loading and timeout handling

This commit is contained in:
Bert 2011-09-02 15:56:03 +02:00
parent 1e84773276
commit dcd04e526d

42
main.c
View File

@ -357,31 +357,31 @@ void run() {
redraw();
while (1) {
if (!XPending(win.env.dpy)) {
while (mode == MODE_THUMB && tns.cnt < filecnt &&
!XPending(win.env.dpy))
{
/* load thumbnails */
while (mode == MODE_THUMB && tns.cnt < filecnt) {
win_set_cursor(&win, CURSOR_WATCH);
if (tns_load(&tns, tns.cnt, &files[tns.cnt], False, False))
tns.cnt++;
else
remove_file(tns.cnt, 0);
if (tns.cnt == filecnt) {
redraw();
win_set_cursor(&win, CURSOR_ARROW);
} else {
set_timeout(redraw, TO_REDRAW_THUMBS, 0);
check_timeouts(NULL);
}
win_set_cursor(&win, CURSOR_WATCH);
set_timeout(redraw, TO_REDRAW_THUMBS, 0);
if (tns_load(&tns, tns.cnt, &files[tns.cnt], False, False))
tns.cnt++;
else
remove_file(tns.cnt, 0);
if (tns.cnt == filecnt) {
redraw();
win_set_cursor(&win, CURSOR_ARROW);
} else {
check_timeouts(NULL);
}
}
if (!XPending(win.env.dpy) && check_timeouts(&timeout)) {
/* handle timeouts */
if (check_timeouts(&timeout)) {
xfd = ConnectionNumber(win.env.dpy);
FD_ZERO(&fds);
FD_SET(xfd, &fds);
if (!select(xfd + 1, &fds, 0, 0, &timeout))
check_timeouts(NULL);
}
xfd = ConnectionNumber(win.env.dpy);
FD_ZERO(&fds);
FD_SET(xfd, &fds);
if (!select(xfd + 1, &fds, 0, 0, &timeout))
check_timeouts(NULL);
}
if (!XNextEvent(win.env.dpy, &ev)) {