Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
st.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Force redisplay of all lines in DECSCNM
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
fde0493
..
193db5e
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-54,6
+54,7
@@
#define SELECT_TIMEOUT (20*1000) /* 20 ms */
#define DRAW_TIMEOUT (20*1000) /* 20 ms */
#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)
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define SERRNO strerror(errno)
#define MIN(a, b) ((a) < (b) ? (a) : (b))
@@
-238,6
+239,7
@@
typedef struct {
static void die(const char*, ...);
static void draw(void);
static void die(const char*, ...);
static void draw(void);
+static void redraw(void);
static void drawregion(int, int, int, int);
static void execsh(void);
static void sigchld(int);
static void drawregion(int, int, int, int);
static void execsh(void);
static void sigchld(int);
@@
-1206,7
+1208,7
@@
tsetmode(bool priv, bool set, int *args, int narg) {
mode = term.mode;
MODBIT(term.mode,set, MODE_REVERSE);
if (mode != term.mode)
mode = term.mode;
MODBIT(term.mode,set, MODE_REVERSE);
if (mode != term.mode)
- draw();
+ redraw();
break;
case 7:
MODBIT(term.mode, set, MODE_WRAP);
break;
case 7:
MODBIT(term.mode, set, MODE_WRAP);
@@
-2030,6
+2032,14
@@
xdrawcursor(void) {
}
void
}
void
+redraw(void) {
+ struct timespec tv = {0, REDRAW_TIMEOUT * 1000};
+ tfulldirt();
+ draw();
+ nanosleep(&tv, NULL);
+}
+
+void
draw() {
drawregion(0, 0, term.col, term.row);
xcopy();
draw() {
drawregion(0, 0, term.col, term.row);
xcopy();