diff options
| -rw-r--r-- | TODO | 1 | ||||
| -rw-r--r-- | st.c | 27 | 
2 files changed, 3 insertions, 25 deletions
| @@ -15,7 +15,6 @@ code & interface  * clean selection code  * clean and complete terminfo entry -* remove the timeouts in the main loop  bugs  ---- @@ -53,8 +53,6 @@  #define XK_NO_MOD     UINT_MAX  #define XK_ANY_MOD    0 -#define SELECT_TIMEOUT (20*1000) /* 20 ms */ -#define DRAW_TIMEOUT  (20*1000) /* 20 ms */  #define REDRAW_TIMEOUT (80*1000) /* 80 ms */  #define SERRNO strerror(errno) @@ -205,7 +203,6 @@ typedef struct {  	int ch; /* char height */  	int cw; /* char width  */  	char state; /* focus, redraw, visible */ -	struct timeval lastdraw;  } XWindow;  typedef struct { @@ -250,7 +247,6 @@ static void drawregion(int, int, int, int);  static void execsh(void);  static void sigchld(int);  static void run(void); -static bool last_draw_too_old(void);  static void csidump(void);  static void csihandle(void); @@ -2158,7 +2154,6 @@ void  draw() {  	drawregion(0, 0, term.col, term.row);  	xcopy(); -	gettimeofday(&xw.lastdraw, NULL);  }  void @@ -2345,41 +2340,25 @@ resize(XEvent *e) {  	ttyresize(col, row);  } -bool -last_draw_too_old(void) { -	struct timeval now; -	gettimeofday(&now, NULL); -	return TIMEDIFF(now, xw.lastdraw) >= DRAW_TIMEOUT/1000; -} -  void  run(void) {  	XEvent ev;  	fd_set rfd;  	int xfd = XConnectionNumber(xw.dpy); -	struct timeval timeout = {0}; -	bool stuff_to_print = 0;  	for(;;) {  		FD_ZERO(&rfd);  		FD_SET(cmdfd, &rfd);  		FD_SET(xfd, &rfd); -		timeout.tv_sec  = 0; -		timeout.tv_usec = SELECT_TIMEOUT; -		if(select(MAX(xfd, cmdfd)+1, &rfd, NULL, NULL, &timeout) < 0) { +		if(select(MAX(xfd, cmdfd)+1, &rfd, NULL, NULL, NULL) < 0) {  			if(errno == EINTR)  				continue;  			die("select failed: %s\n", SERRNO);  		} -		if(FD_ISSET(cmdfd, &rfd)) { +		if(FD_ISSET(cmdfd, &rfd))  			ttyread(); -			stuff_to_print = 1; -		} -		if(stuff_to_print && last_draw_too_old()) { -			stuff_to_print = 0; -			draw(); -		} +		draw();  		while(XPending(xw.dpy)) {  			XNextEvent(xw.dpy, &ev); | 
