changeset 19947: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);
+             }
         }
     }