mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-29 20:20:43 +00:00
various fixes, most notably using windows instead of subwindows. This stops
the invalid memory accesses within ncurses when resizing.
This commit is contained in:
parent
cd5f322cc1
commit
e9e2bbf1c1
1 changed files with 10 additions and 8 deletions
|
@ -137,9 +137,9 @@ C_Init (void)
|
||||||
intrflush (stdscr, FALSE);
|
intrflush (stdscr, FALSE);
|
||||||
|
|
||||||
getmaxyx (stdscr, screen_y, screen_x);
|
getmaxyx (stdscr, screen_y, screen_x);
|
||||||
output = subwin (stdscr, screen_y - 2, screen_x, 0, 0);
|
output = newwin (screen_y - 2, screen_x, 0, 0);
|
||||||
status = subwin (stdscr, 1, screen_x, screen_y - 2, 0);
|
status = newwin (1, screen_x, screen_y - 2, 0);
|
||||||
input = subwin (stdscr, 1, screen_x, screen_y - 1, 0);
|
input = newwin (1, screen_x, screen_y - 1, 0);
|
||||||
|
|
||||||
init_pair (1, COLOR_YELLOW, COLOR_BLACK);
|
init_pair (1, COLOR_YELLOW, COLOR_BLACK);
|
||||||
init_pair (2, COLOR_GREEN, COLOR_BLACK);
|
init_pair (2, COLOR_GREEN, COLOR_BLACK);
|
||||||
|
@ -229,7 +229,8 @@ C_ProcessInput (void)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_CURSES_H
|
#ifdef HAVE_CURSES_H
|
||||||
if (use_curses) {
|
if (use_curses) {
|
||||||
int ch = wgetch (input), i;
|
int ch;
|
||||||
|
int i;
|
||||||
const char *text;
|
const char *text;
|
||||||
|
|
||||||
if (interrupted) {
|
if (interrupted) {
|
||||||
|
@ -238,12 +239,14 @@ C_ProcessInput (void)
|
||||||
interrupted = 0;
|
interrupted = 0;
|
||||||
if (ioctl (fileno (stdout), TIOCGWINSZ, &size) == 0) {
|
if (ioctl (fileno (stdout), TIOCGWINSZ, &size) == 0) {
|
||||||
resizeterm (size.ws_row, size.ws_col);
|
resizeterm (size.ws_row, size.ws_col);
|
||||||
wrefresh (curscr);
|
|
||||||
getmaxyx (stdscr, screen_y, screen_x);
|
getmaxyx (stdscr, screen_y, screen_x);
|
||||||
con_linewidth = screen_x;
|
con_linewidth = screen_x;
|
||||||
|
wrefresh (curscr);
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ch = wgetch (input);
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case KEY_ENTER:
|
case KEY_ENTER:
|
||||||
case '\n':
|
case '\n':
|
||||||
|
@ -286,10 +289,9 @@ C_ProcessInput (void)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (ch < 0 || ch >= 256)
|
if (ch < 0 || ch >= 256)
|
||||||
ch = 0;
|
return;
|
||||||
}
|
}
|
||||||
if (ch)
|
Con_ProcessInputLine (input_line, ch);
|
||||||
Con_ProcessInputLine (input_line, ch);
|
|
||||||
i = input_line->linepos - 1;
|
i = input_line->linepos - 1;
|
||||||
if (input_line->scroll > i)
|
if (input_line->scroll > i)
|
||||||
input_line->scroll = i;
|
input_line->scroll = i;
|
||||||
|
|
Loading…
Reference in a new issue