Kaydet (Commit) abb0549d authored tarafından Michael Stahl's avatar Michael Stahl

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
üst e754e436
......@@ -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 )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment