Avoid temporary console window scroll on redraw due to writing to lower right screen cell.
This commit is contained in:
parent
24e17a9ed1
commit
3de5f38218
@ -30,7 +30,7 @@
|
|||||||
*
|
*
|
||||||
* Author: Oliver Schmidt <ol.sc@web.de>
|
* Author: Oliver Schmidt <ol.sc@web.de>
|
||||||
*
|
*
|
||||||
* $Id: ctk-console.c,v 1.2 2006/08/14 23:42:33 oliverschmidt Exp $
|
* $Id: ctk-console.c,v 1.3 2006/08/21 22:27:10 oliverschmidt Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
@ -48,6 +48,7 @@ static unsigned char width;
|
|||||||
static unsigned char height;
|
static unsigned char height;
|
||||||
|
|
||||||
static DWORD saved_inputmode;
|
static DWORD saved_inputmode;
|
||||||
|
static DWORD saved_outputmode;
|
||||||
static unsigned char saved_color;
|
static unsigned char saved_color;
|
||||||
static char saved_title[1024];
|
static char saved_title[1024];
|
||||||
static CONSOLE_CURSOR_INFO saved_cursorinfo;
|
static CONSOLE_CURSOR_INFO saved_cursorinfo;
|
||||||
@ -85,6 +86,9 @@ console_init(void)
|
|||||||
GetConsoleMode(stdinhandle, &saved_inputmode);
|
GetConsoleMode(stdinhandle, &saved_inputmode);
|
||||||
SetConsoleMode(stdinhandle, ENABLE_MOUSE_INPUT | ENABLE_PROCESSED_INPUT);
|
SetConsoleMode(stdinhandle, ENABLE_MOUSE_INPUT | ENABLE_PROCESSED_INPUT);
|
||||||
|
|
||||||
|
GetConsoleMode(stdouthandle, &saved_outputmode);
|
||||||
|
SetConsoleMode(stdouthandle, ENABLE_PROCESSED_OUTPUT);
|
||||||
|
|
||||||
screensize(&width, &height);
|
screensize(&width, &height);
|
||||||
|
|
||||||
GetConsoleScreenBufferInfo(stdouthandle, &consoleinfo);
|
GetConsoleScreenBufferInfo(stdouthandle, &consoleinfo);
|
||||||
@ -105,13 +109,13 @@ console_init(void)
|
|||||||
void
|
void
|
||||||
console_exit(void)
|
console_exit(void)
|
||||||
{
|
{
|
||||||
SetConsoleMode(stdinhandle, saved_inputmode);
|
|
||||||
|
|
||||||
textcolor(saved_color);
|
textcolor(saved_color);
|
||||||
revers(0);
|
revers(0);
|
||||||
clrscr();
|
clrscr();
|
||||||
gotoxy(0, 0);
|
gotoxy(0, 0);
|
||||||
|
|
||||||
|
SetConsoleMode(stdinhandle, saved_inputmode);
|
||||||
|
SetConsoleMode(stdouthandle, saved_outputmode);
|
||||||
SetConsoleTitle(saved_title);
|
SetConsoleTitle(saved_title);
|
||||||
SetConsoleCursorInfo(stdouthandle, &saved_cursorinfo);
|
SetConsoleCursorInfo(stdouthandle, &saved_cursorinfo);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user