diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c index 810694265f207c181fd73f366cf10e67e02f9002..d13dc4b8fee3c2426c851119c280fae3032ef0c1 100644 --- a/src/syncterm/bbslist.c +++ b/src/syncterm/bbslist.c @@ -384,7 +384,7 @@ viewofflinescroll(void) setfont(0, false, 4); drawwin(); set_modepalette(palettes[COLOUR_PALETTE]); - top = scrollback_lines; + top = scrollback_pos; gotoxy(1, 1); textattr(uifc.hclr | (uifc.bclr << 4) | BLINK); gettextinfo(&sbtxtinfo); diff --git a/src/syncterm/syncterm.c b/src/syncterm/syncterm.c index 938f7c84686cea6b6ebcf9449ffb4f8f04f1367d..5e8d01ac17d1f1120c83be80278fab0753d61256 100644 --- a/src/syncterm/syncterm.c +++ b/src/syncterm/syncterm.c @@ -137,6 +137,7 @@ struct syncterm_settings settings; char *font_names[sizeof(conio_fontdata) / sizeof(struct conio_font_data_struct)]; struct vmem_cell *scrollback_buf = NULL; unsigned int scrollback_lines = 0; +unsigned int scrollback_pos = 0; unsigned int scrollback_mode = C80; unsigned int scrollback_cols = 80; int safe_mode = 0; diff --git a/src/syncterm/syncterm.h b/src/syncterm/syncterm.h index cc01981bdf0a4dffa306fd5dfa30e9e9d7445ecd..dde9683e2f05bbb22207321faddad345d888494e 100644 --- a/src/syncterm/syncterm.h +++ b/src/syncterm/syncterm.h @@ -87,6 +87,7 @@ extern struct vmem_cell *scrollback_buf; extern uint32_t *scrollback_fbuf; extern uint32_t *scrollback_bbuf; extern unsigned int scrollback_lines; +extern unsigned int scrollback_pos; extern unsigned int scrollback_mode; extern unsigned int scrollback_cols; extern struct syncterm_settings settings; diff --git a/src/syncterm/term.c b/src/syncterm/term.c index a4544e973cee2ef94a591918c38a434bd32b5d23..214a076c7d295155f402f39a183cded666437f43 100644 --- a/src/syncterm/term.c +++ b/src/syncterm/term.c @@ -3771,6 +3771,7 @@ doterm(struct bbslist *bbs) uifcmsg("Disconnected", "`Disconnected`\n\nRemote host dropped connection"); check_exit(false); + scrollback_pos = cterm->backpos; cterm_clearscreen(cterm, cterm->attr); /* Clear screen into * scrollback */ scrollback_lines = cterm->backpos; @@ -4130,6 +4131,7 @@ doterm(struct bbslist *bbs) "Selecting Yes closes the connection\n")) { freescreen(savscrn); setup_mouse_events(&ms); + scrollback_pos = cterm->backpos; cterm_clearscreen(cterm, cterm->attr); /* Clear screen into * scrollback */ scrollback_lines = cterm->backpos; @@ -4161,6 +4163,7 @@ doterm(struct bbslist *bbs) j = wherey(); switch (syncmenu(bbs, &speed)) { case -1: + scrollback_pos = cterm->backpos; cterm_clearscreen(cterm, cterm->attr); /* Clear screen into * scrollback */ scrollback_lines = cterm->backpos; @@ -4204,6 +4207,7 @@ doterm(struct bbslist *bbs) break; case 12: #endif + scrollback_pos = cterm->backpos; cterm_clearscreen(cterm, cterm->attr); /* Clear screen into * scrollback */ scrollback_lines = cterm->backpos;