commit 281a469442c452463a5fd1d8d3c145a1a62488b0
parent cd79a81692251bb96e4504314c28b90ea207a627
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Sat, 8 Dec 2007 07:00:27 +0000
fix minor display and cursor placement problems when scrolling between
pages at the statusbar prompt
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4189 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-08 David Lawrence Ramsey <pooka109@gmail.com>
+
+ * prompt.c (do_statusbar_mouse, reset_statusbar_cursor,
+ update_statusbar_line, need_statusbar_horizontal_update): Fix
+ minor display and cursor placement problems when scrolling
+ between pages at the statusbar prompt.
+
2007-12-07 David Lawrence Ramsey <pooka109@gmail.com>
* winio.c (get_mouseinput): Fix longstanding problem where mouse
diff --git 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);