diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c index 7c143edd516836d98ef7bafd838b9c099611ed97..c63cea08141b87badd9ae5781bb21aface748da1 100644 --- a/src/conio/ciolib.c +++ b/src/conio/ciolib.c @@ -60,6 +60,7 @@ static int lastmode=3; int _wscroll=1; int directvideo=0; int dont_move_cursor=0; +int hold_refresh=0; static int initialized=0; int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy); diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h index be8f5f67746c87405d3da732af4970c3f9a3b8c2..a8e9017f2a727dabb9164f81a530ad82b784fa72 100644 --- a/src/conio/ciolib.h +++ b/src/conio/ciolib.h @@ -202,6 +202,7 @@ extern cioapi_t cio_api; extern int _wscroll; extern int directvideo; extern int dont_move_cursor; +extern int hold_refresh; #define _conio_kbhit() kbhit() diff --git a/src/conio/curs_cio.c b/src/conio/curs_cio.c index e0d8487d29d502f7beb5563a413cec41c0fd2a85..6c6f2c4f1e17e923001baa503eca064e2f2c643c 100644 --- a/src/conio/curs_cio.c +++ b/src/conio/curs_cio.c @@ -133,7 +133,8 @@ int curs_puttext(int sx, int sy, int ex, int ey, void *fillbuf) } textattr(orig_attr); move(oldy, oldx); - refresh(); + if(!hold_refresh) + refresh(); return(1); } @@ -632,8 +633,10 @@ int _putch(unsigned char ch, BOOL refresh_now) else ret=addch(cha); - if(refresh_now) - refresh(); + if(!hold_refresh) { + if(refresh_now) + refresh(); + } return(ret); } @@ -641,7 +644,8 @@ int _putch(unsigned char ch, BOOL refresh_now) void curs_gotoxy(int x, int y) { move(y-1,x-1); - refresh(); + if(!hold_refresh) + refresh(); } void call_endwin(void) @@ -725,7 +729,8 @@ void curs_setcursortype(int type) { break; } - refresh(); + if(!hold_refresh) + refresh(); } int curs_putch(int ch)