diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-02-24 13:57:53 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-02-24 13:58:48 +0000 |
commit | 71a84b69ae30458a941f38869aa994118051a063 (patch) | |
tree | 2b7733e8e976460ac786e45af970316a18dbdd81 /editeng | |
parent | 6017732e0bc2be82e6a2be3bfd0b090b7904e29a (diff) |
Resolves: tdf#106123 store and restore the PaM around the menu Execute
because the loss of focus in the current editeng causes writer annotations to
save their contents, making the pContent of the current EditMaps invalid
Change-Id: Ic01379291fa66dd58246d33287b18801f5da49c0
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/editeng/editview.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx index 4f72ae7bfcb0..553fe192cec8 100644 --- a/editeng/source/editeng/editview.cxx +++ b/editeng/source/editeng/editview.cxx @@ -983,7 +983,18 @@ void EditView::ExecuteSpellPopup( const Point& rPosPixel, Link<SpellCallbackInfo aScreenPos = pImpEditView->GetWindow()->OutputToScreenPixel( aScreenPos ); aTempRect = pImpEditView->GetWindow()->LogicToPixel( Rectangle(aScreenPos, aTempRect.GetSize() )); + //tdf#106123 store and restore the EditPaM around the menu Execute + //because the loss of focus in the current editeng causes writer + //annotations to save their contents, making the pContent of the + //current EditPams invalid + EPaM aP = pImpEditView->pEditEngine->pImpEditEngine->CreateEPaM(aPaM); + EPaM aP2 = pImpEditView->pEditEngine->pImpEditEngine->CreateEPaM(aPaM2); + sal_uInt16 nId = aPopupMenu->Execute( pImpEditView->GetWindow(), aTempRect, PopupMenuFlags::NoMouseUpClose ); + + aPaM2 = pImpEditView->pEditEngine->pImpEditEngine->CreateEditPaM(aP2); + aPaM = pImpEditView->pEditEngine->pImpEditEngine->CreateEditPaM(aP); + if (nId == nIgnoreId) { OUString aWord = pImpEditView->SpellIgnoreWord(); |