Added scroll handler

This commit is contained in:
James Booth
2015-01-31 22:29:44 +00:00
parent 3b3ffcfb37
commit a19c0a5989

View File

@@ -365,6 +365,26 @@ inp_block(void)
wtimeout(inp_win, -1);
}
void
inp_win_handle_scroll(void)
{
int col = getcurx(inp_win);
int wcols = getmaxx(stdscr);
// if lost cursor off screen, move contents to show it
if (col >= pad_start + (wcols -2)) {
pad_start = col - (wcols / 2);
if (pad_start < 0) {
pad_start = 0;
}
} else if (col <= pad_start) {
pad_start = pad_start - (wcols / 2);
if (pad_start < 0) {
pad_start = 0;
}
}
}
void
inp_write(char *line, int offset)
{
@@ -372,6 +392,8 @@ inp_write(char *line, int offset)
werase(inp_win);
waddstr(inp_win, line);
wmove(inp_win, 0, col);
inp_win_handle_scroll();
_inp_win_update_virtual();
}