]> git.wh0rd.org Git - nano.git/commitdiff
Preserving the cursor position on the statusbar when just toggling
authorBenno Schulenberg <bensberg@justemail.net>
Thu, 21 Jan 2016 17:29:37 +0000 (17:29 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Thu, 21 Jan 2016 17:29:37 +0000 (17:29 +0000)
a setting or making an excursion to the file browser.
This fixes Savannah bug #46945.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5576 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/prompt.c

index 64aadc77552d847f905617b0d5c47ef76faf23c7..6a46379c16f290f2275b74225129ae57d690fc63 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-21  Benno Schulenberg  <bensberg@justemail.net>
+       * src/prompt.c (get_prompt_string): Preserve the cursor position on
+       the statusbar when just toggling a setting or making an excursion to
+       the file browser.  This fixes Savannah bug #46945.
+
 2016-01-20  Benno Schulenberg  <bensberg@justemail.net>
        * src/files.c (open_buffer): Readjust the indentation and a comment.
        * src/files.c (has_valid_path): Get rid of a global variable.
index 7cce2869e06dbd15f0cd4c9e19c37de6b17eebe1..72a713caee3f2195d6f6c75546eb872e674690b6 100644 (file)
@@ -922,22 +922,11 @@ functionptrtype get_prompt_string(int *actual, bool allow_tabs,
     }
 #endif
 
-    /* We've finished putting in an answer or run a normal shortcut's
-     * associated function, so reset statusbar_x and statusbar_pww.  If
-     * we've finished putting in an answer, reset the statusbar cursor
-     * position too. */
-    if (func) {
-       if (func == do_cancel || func == do_enter || ran_func) {
-           statusbar_x = old_statusbar_x;
-           statusbar_pww = old_pww;
-
-           if (!ran_func)
-               reset_statusbar_x = TRUE;
-    /* Otherwise, we're still putting in an answer or a shortcut with
-     * an associated function, so leave the statusbar cursor position
-     * alone. */
-       } else
-           reset_statusbar_x = FALSE;
+    /* If we're done with this prompt, restore the cursor position
+     * to what it was at the /previous/ prompt, in case there was. */
+    if (func == do_cancel || func == do_enter) {
+       statusbar_x = old_statusbar_x;
+       statusbar_pww = old_pww;
     }
 
     *actual = kbinput;