Mercurial > octave
changeset 19912:b8ce2f42815c
gui: when search backward, start from beginning of previous text (Bug #44439)
* libgui/src/m-editor/find-dialog.cc
(find_dialog::find): when search backward, start from beginning of previous text.
author | John D |
---|---|
date | Fri, 06 Mar 2015 11:34:21 -0500 |
parents | 2b5cbea8f442 |
children | 2a992bd19169 |
files | libgui/src/m-editor/find-dialog.cc |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/m-editor/find-dialog.cc Fri Mar 06 12:56:55 2015 +0100 +++ b/libgui/src/m-editor/find-dialog.cc Fri Mar 06 11:34:21 2015 -0500 @@ -290,11 +290,17 @@ } else if (! do_forward) { - // search from previous character if search backward + // search from position before search characters text length + // if search backward on existing results, _edit_area->getCursorPosition (&line,&col); - int currpos = _edit_area->positionFromLineIndex(line,col); - if (currpos > 0) currpos --; - _edit_area->lineIndexFromPosition(currpos, &line,&col); + if (_find_result_available && _edit_area->hasSelectedText ()) + { + int currpos = _edit_area->positionFromLineIndex(line,col); + currpos -= (_search_line_edit->text ().length ()); + if (currpos < 0) + currpos = 0; + _edit_area->lineIndexFromPosition(currpos, &line,&col); + } } }