commit aa7edb7fc2d51fee7a6b75a4699b5e3285654fb5
parent a68e1627dc00886bf06d8d650fa1fc122bdbb6cb
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Thu, 21 Jan 2016 17:29:37 +0000
Preserving the cursor position on the statusbar when just toggling
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
Diffstat:
2 files changed, 10 insertions(+), 16 deletions(-)
diff --git 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.
diff --git a/src/prompt.c b/src/prompt.c
@@ -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;