]> git.wh0rd.org Git - nano.git/commitdiff
fix minor display and cursor placement problems when scrolling between
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Sat, 8 Dec 2007 07:00:27 +0000 (07:00 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Sat, 8 Dec 2007 07:00:27 +0000 (07:00 +0000)
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
src/prompt.c

index 4e38f5d22dcbcf2279469bfe39be700b9ef8b3ea..e1698bb5ff0574ec4b48a62974821f50e72a1e67 100644 (file)
--- 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
index 2f6ad175ab7885153ef43a1aa20e98ede46a8eab..d32c7cb78d485b3f531b438faa2029f1c1618855 100644 (file)
@@ -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);