diff --git a/ChangeLog b/ChangeLog index 04e8ce78b71ad2751bade672477d57b662912be1..e532f29d1c09eb91a0095e50572f7cc28e691144 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-02-14 Benno Schulenberg <bensberg@justemail.net> + * src/search.c (do_replace_loop): Make iterating through replacement + matches behave again like iterating through search matches: showing + them centered when found offscreen. This fixes Savannah bug #47127. + 2016-02-13 Benno Schulenberg <bensberg@justemail.net> * src/browser.c (do_browser, browser_refresh): Rebuild the file list only when necessary, not for each and every cursor movement. This diff --git a/src/search.c b/src/search.c index 9d63f7b481ec921d461af376cd6efe7b51d8115c..010540332ff91425534ec48e6d8c4378154832ee 100644 --- a/src/search.c +++ b/src/search.c @@ -708,6 +708,10 @@ ssize_t do_replace_loop( xpt, strnlenpt(openfile->current->data, openfile->current_x + match_len) - xpt, FALSE); + /* If the match is offscreen, center it; otherwise, let it be. */ + edit_redraw(openfile->current, openfile->placewewant); + + /* Now refresh the entire edit window, in case it scrolled. */ edit_refresh(); /* Don't show cursor, to not distract from highlighted match. */