From ad966c835627c33daf2485864b00990f688164de Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Sat, 8 Dec 2007 07:00:27 +0000 Subject: [PATCH] fix minor display and cursor placement problems when scrolling between pages at the statusbar prompt git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_0_branch/nano@4189 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 5 +++++ src/prompt.c | 15 +++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4e38f5d2..e1698bb5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -41,6 +41,11 @@ CVS code - - Update copyright notices, as Thijs Kinkhorst's copyrights have now been assigned to the Free Software Foundation. Changes to doc/man/rnano.1 and doc/man/fr/rnano.1. (DLR) + - Fix minor display and cursor placement problems when scrolling + between pages at the statusbar prompt. Changes to + do_statusbar_mouse(), reset_statusbar_cursor(), + update_statusbar_line(), and + need_statusbar_horizontal_update(). (DLR) - chars.c: nstrncasecmp(), mbstrncasecmp() - For efficiency, return zero immediately if s1 and s2 point to diff --git a/src/prompt.c b/src/prompt.c index 2f6ad175..d32c7cb7 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -285,16 +285,15 @@ int do_statusbar_mouse(void) assert(prompt != NULL); - start_col = strlenpt(prompt) + 1; + start_col = strlenpt(prompt) + 2; /* Move to where the click occurred. */ - if (mouse_x > start_col && mouse_y == 0) { + if (mouse_x >= start_col && mouse_y == 0) { size_t pww_save = statusbar_pww; statusbar_x = actual_x(answer, get_statusbar_page_start(start_col, start_col + - statusbar_xplustabs()) + mouse_x - - start_col - 1); + statusbar_xplustabs()) + mouse_x - start_col); statusbar_pww = statusbar_xplustabs(); if (need_statusbar_horizontal_update(pww_save)) @@ -865,10 +864,10 @@ size_t get_statusbar_page_start(size_t start_col, size_t column) /* Put the cursor in the statusbar prompt at statusbar_x. */ void reset_statusbar_cursor(void) { - size_t start_col = strlenpt(prompt) + 1; + size_t start_col = strlenpt(prompt) + 2; size_t xpt = statusbar_xplustabs(); - wmove(bottomwin, 0, start_col + 1 + xpt - + wmove(bottomwin, 0, start_col + xpt - get_statusbar_page_start(start_col, start_col + xpt)); } @@ -882,7 +881,7 @@ void update_statusbar_line(const char *curranswer, size_t index) assert(prompt != NULL && index <= strlen(curranswer)); - start_col = strlenpt(prompt) + 1; + start_col = strlenpt(prompt) + 2; index = strnlenpt(curranswer, index); page_start = get_statusbar_page_start(start_col, start_col + index); @@ -910,7 +909,7 @@ void update_statusbar_line(const char *curranswer, size_t index) * different pages. */ bool need_statusbar_horizontal_update(size_t pww_save) { - size_t start_col = strlenpt(prompt) + 1; + size_t start_col = strlenpt(prompt) + 2; return get_statusbar_page_start(start_col, start_col + pww_save) != get_statusbar_page_start(start_col, start_col + statusbar_pww); -- 2.39.5