fix total_redraw() so that it always keeps the cursor in the same window

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2752 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
David Lawrence Ramsey 2005-06-21 20:16:26 +00:00
parent 3f301dd437
commit ba61cc382f
2 changed files with 12 additions and 9 deletions

View File

@ -328,11 +328,13 @@ CVS code -
prompt, so that we don't end it in the middle of a multibyte prompt, so that we don't end it in the middle of a multibyte
character if it's more than (COLS - 1) bytes long. (DLR) character if it's more than (COLS - 1) bytes long. (DLR)
total_redraw() total_redraw()
- Simplify to call clearok(TRUE) and wrefresh() on edit, which - Simplify to call clearok(TRUE) and wrefresh() on curscr, which
updates the entire screen in fewer function calls. (DLR) updates the entire screen in fewer function calls without
moving the cursor from the window it's currently in. (DLR)
- When using slang, use SLsmg_touch_screen() and SLsmg_refresh() - When using slang, use SLsmg_touch_screen() and SLsmg_refresh()
to update the screen, as the curses method will leave some to update the screen, as slang doesn't define curscr, and even
windows cleared without properly updating them. (DLR) if it did, the curses method will leave some windows cleared
without properly updating them. (DLR)
do_replace_highlight() do_replace_highlight()
- Use waddch() instead of waddstr() to display a space when we - Use waddch() instead of waddstr() to display a space when we
have a zero-length regex. (DLR) have a zero-length regex. (DLR)

View File

@ -3713,14 +3713,15 @@ int do_yesno(bool all, const char *msg)
void total_redraw(void) void total_redraw(void)
{ {
#ifdef USE_SLANG #ifdef USE_SLANG
/* Slang curses emulation brain damage, part 3: If we just do what /* Slang curses emulation brain damage, part 3: Slang doesn't define
* curses does here, it'll leave some windows cleared without * curscr, and even if it did, if we just do what curses does here,
* updating them properly. */ * it'll leave some windows cleared without updating them
* properly. */
SLsmg_touch_screen(); SLsmg_touch_screen();
SLsmg_refresh(); SLsmg_refresh();
#else #else
clearok(edit, TRUE); clearok(curscr, TRUE);
wrefresh(edit); wrefresh(curscr);
#endif #endif
} }