diff options
| -rw-r--r-- | st.c | 12 |
1 files changed, 11 insertions, 1 deletions
| @@ -54,6 +54,7 @@ | |||
| 54 | 54 | ||
| 55 | #define SELECT_TIMEOUT (20*1000) /* 20 ms */ | 55 | #define SELECT_TIMEOUT (20*1000) /* 20 ms */ |
| 56 | #define DRAW_TIMEOUT (20*1000) /* 20 ms */ | 56 | #define DRAW_TIMEOUT (20*1000) /* 20 ms */ |
| 57 | #define REDRAW_TIMEOUT (80*1000) /* 80 ms */ | ||
| 57 | 58 | ||
| 58 | #define SERRNO strerror(errno) | 59 | #define SERRNO strerror(errno) |
| 59 | #define MIN(a, b) ((a) < (b) ? (a) : (b)) | 60 | #define MIN(a, b) ((a) < (b) ? (a) : (b)) |
| @@ -238,6 +239,7 @@ typedef struct { | |||
| 238 | 239 | ||
| 239 | static void die(const char*, ...); | 240 | static void die(const char*, ...); |
| 240 | static void draw(void); | 241 | static void draw(void); |
| 242 | static void redraw(void); | ||
| 241 | static void drawregion(int, int, int, int); | 243 | static void drawregion(int, int, int, int); |
| 242 | static void execsh(void); | 244 | static void execsh(void); |
| 243 | static void sigchld(int); | 245 | static void sigchld(int); |
| @@ -1206,7 +1208,7 @@ tsetmode(bool priv, bool set, int *args, int narg) { | |||
| 1206 | mode = term.mode; | 1208 | mode = term.mode; |
| 1207 | MODBIT(term.mode,set, MODE_REVERSE); | 1209 | MODBIT(term.mode,set, MODE_REVERSE); |
| 1208 | if (mode != term.mode) | 1210 | if (mode != term.mode) |
| 1209 | draw(); | 1211 | redraw(); |
| 1210 | break; | 1212 | break; |
| 1211 | case 7: | 1213 | case 7: |
| 1212 | MODBIT(term.mode, set, MODE_WRAP); | 1214 | MODBIT(term.mode, set, MODE_WRAP); |
| @@ -2030,6 +2032,14 @@ xdrawcursor(void) { | |||
| 2030 | } | 2032 | } |
| 2031 | 2033 | ||
| 2032 | void | 2034 | void |
| 2035 | redraw(void) { | ||
| 2036 | struct timespec tv = {0, REDRAW_TIMEOUT * 1000}; | ||
| 2037 | tfulldirt(); | ||
| 2038 | draw(); | ||
| 2039 | nanosleep(&tv, NULL); | ||
| 2040 | } | ||
| 2041 | |||
| 2042 | void | ||
| 2033 | draw() { | 2043 | draw() { |
| 2034 | drawregion(0, 0, term.col, term.row); | 2044 | drawregion(0, 0, term.col, term.row); |
| 2035 | xcopy(); | 2045 | xcopy(); |
