All timeouts in milliseconds

master
Bert 2011-06-28 13:45:57 +02:00
parent f52603b31a
commit bd87ae9346
3 changed files with 22 additions and 15 deletions

View File

@ -1,6 +1,6 @@
all: sxiv
VERSION = git-20110624
VERSION = git-20110628
CC = gcc
DESTDIR =

18
main.c
View File

@ -241,7 +241,7 @@ int main(int argc, char **argv) {
}
filecnt = fileidx;
fileidx = options->startnum < filecnt ? options->startnum : filecnt - 1;
fileidx = options->startnum < filecnt ? options->startnum : 0;
win_init(&win);
img_init(&img, &win);
@ -327,10 +327,11 @@ int run_command(const char *cline, Bool reload) {
/* event handling */
#define TO_WIN_RESIZE 75000
#define TO_IMAGE_DRAG 1000
#define TO_CURSOR_HIDE 1500000
#define TO_THUMBS_LOAD 75000
/* timeouts in milliseconds: */
#define TO_WIN_RESIZE 75
#define TO_IMAGE_DRAG 1
#define TO_CURSOR_HIDE 1500
#define TO_THUMBS_LOAD 200
int timo_cursor;
int timo_redraw;
@ -723,7 +724,7 @@ void run() {
else
remove_file(tns.cnt, 0);
gettimeofday(&t1, 0);
if (TV_TO_DOUBLE(t1) - TV_TO_DOUBLE(t0) >= 0.25)
if (TIMEDIFF(&t1, &t0) >= TO_THUMBS_LOAD)
break;
}
if (tns.cnt == filecnt)
@ -742,8 +743,7 @@ void run() {
timeout = timo_cursor;
else
timeout = timo_redraw;
tt.tv_sec = timeout / 1000000;
tt.tv_usec = timeout % 1000000;
MSEC_TO_TIMEVAL(timeout, &tt);
xfd = ConnectionNumber(win.env.dpy);
FD_ZERO(&fds);
FD_SET(xfd, &fds);
@ -751,7 +751,7 @@ void run() {
if (!XPending(win.env.dpy))
select(xfd + 1, &fds, 0, 0, &tt);
gettimeofday(&t1, 0);
timeout = MIN((TV_TO_DOUBLE(t1) - TV_TO_DOUBLE(t0)) * 1000000, timeout);
timeout = MIN(TIMEDIFF(&t1, &t0), timeout);
/* timeouts fired? */
if (timo_cursor) {

17
util.h
View File

@ -28,14 +28,21 @@
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define LEN(a) (sizeof(a) / sizeof(a[0]))
#define TV_TO_DOUBLE(x) ((double) ((x).tv_sec) + 0.000001 * \
(double) ((x).tv_usec))
#define TIMEDIFF(t1,t2) (((t1)->tv_sec - (t2)->tv_sec) * 1000 + \
((t1)->tv_usec - (t2)->tv_usec) / 1000)
#define TIMESPEC_TO_TIMEVAL(tv, ts) { \
(tv)->tv_sec = (ts)->tv_sec; \
(tv)->tv_usec = (ts)->tv_nsec / 1000; \
#define MSEC_TO_TIMEVAL(t,tv) { \
(tv)->tv_sec = (t) / 1000; \
(tv)->tv_usec = (t) % 1000 * 1000; \
}
#ifndef TIMESPEC_TO_TIMEVAL
#define TIMESPEC_TO_TIMEVAL(tv,ts) { \
(tv)->tv_sec = (ts)->tv_sec; \
(tv)->tv_usec = (ts)->tv_nsec / 1000; \
}
#endif
typedef struct {
DIR *dir;
char *name;