]> git.wh0rd.org Git - nano.git/commitdiff
When searching, put a found off-screen string on the center line
authorBenno Schulenberg <bensberg@justemail.net>
Sat, 28 Mar 2015 17:01:46 +0000 (17:01 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sat, 28 Mar 2015 17:01:46 +0000 (17:01 +0000)
instead of at the bottom or top, to show it in context.

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

ChangeLog
src/global.c
src/proto.h
src/search.c
src/winio.c

index d72b718d0a108f8d8fe58a3e33eabb39ab55cd00..241e8ef7bc574d65f44ea910b96b5bd2a0a434f6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-03-28  Benno Schulenberg  <bensberg@justemail.net>
+       * src/search.c (search_init_globals, search_replace_abort),
+       src/winio.c (edit_redraw), src/proto.h, src/global.c: When finding
+       an off-screen string, put it on the center line of the screen and
+       not on the bottom or top line.  This restores the old behaviour
+       that was unintentionally changed in r5149 six days ago.
+
 2015-03-27  Mark Majeres  <mark@engine12.com>
        * src/text.c (do_alt_speller): Adjust the end point of the marked
        region for any change in length of the region's last line.
index 27ff938dd67b00a441852cc8742b8b8c743dca03..a26ded460425975f87d37ccb1897a50585aed877 100644 (file)
@@ -42,6 +42,8 @@ bool meta_key;
        /* Whether the current keystroke is a Meta key. */
 bool func_key;
        /* Whether the current keystroke is an extended keypad value. */
+bool focusing = FALSE;
+       /* Whether an update of the edit window should center the cursor. */
 
 #ifndef DISABLE_WRAPJUSTIFY
 ssize_t fill = 0;
index 9199ac04935e2007ce509906922bbd0c5b64e423..f8c8841ed8343713c99f67921ede4ae356369945 100644 (file)
@@ -34,6 +34,7 @@ extern bool jump_buf_main;
 
 extern bool meta_key;
 extern bool func_key;
+extern bool focusing;
 
 #ifndef DISABLE_WRAPJUSTIFY
 extern ssize_t fill;
index 104f823def6d27e7e48e8161e2f8ebc767a13033..a1e2bb3b3516b22b793e4f93675f3cf22c41aea3 100644 (file)
@@ -106,6 +106,7 @@ void not_found_msg(const char *str)
 void search_replace_abort(void)
 {
     display_main_list();
+    focusing = FALSE;
 #ifndef NANO_TINY
     if (openfile->mark_set)
        edit_refresh();
@@ -118,6 +119,7 @@ void search_replace_abort(void)
 /* Initialize the global search and replace strings. */
 void search_init_globals(void)
 {
+    focusing = TRUE;
     if (last_search == NULL)
        last_search = mallocstrcpy(NULL, "");
     if (last_replace == NULL)
index 3dbc1d05a6ece3f6251769abb7b152add305438e..a1e30212d578e18f483769a9c0c7ba997b4383f3 100644 (file)
@@ -3161,10 +3161,7 @@ void edit_redraw(filestruct *old_current, size_t pww_save)
 #endif /* !NANO_TINY */
 
        /* Make sure the current line is on the screen. */
-       if (ISSET(SMOOTH_SCROLL))
-           edit_update(NONE);
-       else
-           edit_update(CENTER);
+       edit_update((ISSET(SMOOTH_SCROLL) && !focusing) ? NONE : CENTER);
 
        /* Update old_current if we're not on the same page as
         * before. */