summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sd/source/ui/view/Outliner.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index f51c91f62995..263ea6f92d5e 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -498,7 +498,12 @@ bool Outliner::StartSearchAndReplace (const SvxSearchItem* pSearchItem)
bEndOfSearch = SearchAndReplaceOnce ();
// restore start position if nothing was found
if(!mbStringFound)
+ {
RestoreStartPosition ();
+ // Nothing was changed, no need to restart the spellchecker.
+ if (nCommand == SvxSearchCmd::FIND)
+ bEndOfSearch = false;
+ }
mnStartPageIndex = (sal_uInt16)-1;
}
@@ -956,7 +961,17 @@ void Outliner::RestoreStartPosition()
std::dynamic_pointer_cast<DrawViewShell>(pViewShell));
SetViewMode (meStartViewMode);
if (pDrawViewShell.get() != NULL)
+ {
SetPage (meStartEditMode, mnStartPageIndex);
+ mpObj = mpStartEditedObject;
+ if (mpObj)
+ {
+ PutTextIntoOutliner();
+ EnterEditMode(false);
+ if (OutlinerView* pOutlinerView = mpImpl->GetOutlinerView())
+ pOutlinerView->SetSelection(maStartSelection);
+ }
+ }
}
else if( 0 != dynamic_cast< const OutlineViewShell *>( pViewShell.get() ))
{