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(); |