summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Cecchetti <marco.cecchetti@collabora.com>2016-02-07 12:09:36 +0100
committerMarco Cecchetti <marco.cecchetti@collabora.com>2016-02-07 12:22:43 +0100
commit7f7dc83a31d31bcdcf6e67fd4cead6088c4ea6b3 (patch)
tree3033190df570c486df78b871969f834f5ae25c1c
parente54f49d65888e180118992c33f7348d6e08b3e20 (diff)
sw - single search after find all selects the 2nd occurrence - fixed
Now, after a search all action we place the cursor at the beginning of the document so that the single search selects the first matching occurrence in the document instead of the second. Conflicts: sw/inc/view.hxx Change-Id: I8c295bcd316c6197154c68ae97eb424ee6cc9904
-rw-r--r--sw/inc/view.hxx3
-rw-r--r--sw/source/uibase/uiview/viewsrch.cxx12
2 files changed, 15 insertions, 0 deletions
diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx
index 40a9630afedd..b8c1c1a3d236 100644
--- a/sw/inc/view.hxx
+++ b/sw/inc/view.hxx
@@ -78,6 +78,7 @@ class Graphic;
class GraphicFilter;
class SwPostItMgr;
enum class SotExchangeDest;
+enum class SvxSearchCmd;
namespace com{ namespace sun { namespace star {
namespace view{ class XSelectionSupplier; }
@@ -239,6 +240,8 @@ class SW_DLLPUBLIC SwView: public SfxViewShell
sal_uInt16 m_nLeftBorderDistance;
sal_uInt16 m_nRightBorderDistance;
+ SvxSearchCmd m_eLastSearchCommand;
+
bool m_bWheelScrollInProgress;
bool m_bCenterCrsr : 1,
diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx
index 6fc549bc0871..27b125d7a8a9 100644
--- a/sw/source/uibase/uiview/viewsrch.cxx
+++ b/sw/source/uibase/uiview/viewsrch.cxx
@@ -457,6 +457,7 @@ void SwView::ExecSearch(SfxRequest& rReq, bool bNoMessage)
rReq.AppendItem(SfxBoolItem(SID_SEARCH_QUIET, true));
rReq.Done();
+ m_eLastSearchCommand = m_pSrchItem->GetCommand();
}
break;
case FID_SEARCH_SEARCHSET:
@@ -548,6 +549,17 @@ bool SwView::SearchAndWrap(bool bApi)
m_pWrtShell->StartAllAction();
m_pWrtShell->Push();
+ // After a search all action we place the cursor at the beginning of
+ // the document so that the single search selects the first matching
+ // occurrence in the document instead of the second.
+ if( m_eLastSearchCommand == SvxSearchCmd::FIND_ALL )
+ {
+ if( DOCPOS_START == aOpts.eEnd )
+ m_pWrtShell->EndDoc();
+ else
+ m_pWrtShell->SttDoc();
+ }
+
// fdo#65014 : Ensure that the point of the cursor is at the extremity of the
// selection closest to the end being searched to as to exclude the selected
// region from the search. (This doesn't work in the case of multiple