fdo#77720: Mail Merge: reset cursors after clearing document
The root cause for the crash is that the shell has an invalid cursor that does not point at a paragraph; this is because first the document is filled and the cursor is pointed at the content of a frame, then the document is cleared from SwFrmCtrlWindow::Resize() [not sure why?] and at that point the cursor remains on an SwEndNode (which is invalid). Change-Id: I47c1e2a34d5579953c1896ff0895568978e72bc7
This commit is contained in:
parent
e754e43662
commit
abb0549dd1
2 changed files with 5 additions and 1 deletions
|
@ -718,10 +718,11 @@ SwFlyFrmFmt* SwDoc::MakeFlySection( RndStdIds eAnchorType,
|
|||
(SwNodeIndex( GetNodes().GetEndOfAutotext()),
|
||||
GetTxtCollFromPool( nCollId ));
|
||||
SwCntntNode * pAnchorNode = pAnchorPos->nNode.GetNode().GetCntntNode();
|
||||
assert(pAnchorNode); // pAnchorNode from cursor, must be valid
|
||||
|
||||
const SfxPoolItem * pItem = NULL;
|
||||
|
||||
if (bCalledFromShell && pAnchorNode && !lcl_IsItemSet(*pNewTxtNd, RES_PARATR_ADJUST) &&
|
||||
if (bCalledFromShell && !lcl_IsItemSet(*pNewTxtNd, RES_PARATR_ADJUST) &&
|
||||
SFX_ITEM_SET == pAnchorNode->GetSwAttrSet().
|
||||
GetItemState(RES_PARATR_ADJUST, true, &pItem))
|
||||
{
|
||||
|
|
|
@ -416,7 +416,10 @@ void SwOneExampleFrame::ClearDocument( bool bStartUpdateTimer )
|
|||
SwEditShell* pSh = pDoc->GetEditShell();
|
||||
pSh->LockPaint();
|
||||
pSh->StartAllAction();
|
||||
pSh->KillPams();
|
||||
pSh->ClearMark();
|
||||
pDoc->ClearDoc();
|
||||
pSh->ClearUpCrsrs();
|
||||
|
||||
if( aLoadedTimer.IsActive() || !bStartUpdateTimer )
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue