From ba61cc382f8a7e15dbcdb9d0ecc7ab07d8bf93e7 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Tue, 21 Jun 2005 20:16:26 +0000 Subject: [PATCH] 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 --- ChangeLog | 10 ++++++---- src/winio.c | 11 ++++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7657cd05..c0c49794 100644 --- a/ChangeLog +++ b/ChangeLog @@ -328,11 +328,13 @@ CVS code - 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) total_redraw() - - Simplify to call clearok(TRUE) and wrefresh() on edit, which - updates the entire screen in fewer function calls. (DLR) + - Simplify to call clearok(TRUE) and wrefresh() on curscr, which + 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() - to update the screen, as the curses method will leave some - windows cleared without properly updating them. (DLR) + to update the screen, as slang doesn't define curscr, and even + if it did, the curses method will leave some windows cleared + without properly updating them. (DLR) do_replace_highlight() - Use waddch() instead of waddstr() to display a space when we have a zero-length regex. (DLR) diff --git a/src/winio.c b/src/winio.c index 15041d91..49236a34 100644 --- a/src/winio.c +++ b/src/winio.c @@ -3713,14 +3713,15 @@ int do_yesno(bool all, const char *msg) void total_redraw(void) { #ifdef USE_SLANG - /* Slang curses emulation brain damage, part 3: If we just do what - * curses does here, it'll leave some windows cleared without - * updating them properly. */ + /* Slang curses emulation brain damage, part 3: Slang doesn't define + * curscr, and even if it did, if we just do what curses does here, + * it'll leave some windows cleared without updating them + * properly. */ SLsmg_touch_screen(); SLsmg_refresh(); #else - clearok(edit, TRUE); - wrefresh(edit); + clearok(curscr, TRUE); + wrefresh(curscr); #endif } -- 2.39.5