summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-09-26 16:56:31 +0200
committerMichael Stahl <mstahl@redhat.com>2017-09-26 17:27:16 +0200
commit17fe1e19e01f8b23bcd23cc7c1789e8f7064d06e (patch)
tree677112f5a4b6e5cb4c489f061267523a305bed75
parent1512084e6d875a22ee140780075c1a8dd56c9401 (diff)
tdf#112574 sw: don't insert RES_ANCHOR into style item sets
Styles don't have anchors, only frames have anchors. When using "New Style from Selection", clear the RES_ANCHOR from the style item set. Also, don't insert it in SwFramePage::DeactivatePage(). This was always broken and reportedly crashes since commit e07feb9457f2ffb373ae69b73dda290140e4005f Change-Id: I9320dbbcae980dfa0b00459b8cd808553d1a04f4
-rw-r--r--sw/source/ui/frmdlg/frmpage.cxx17
-rw-r--r--sw/source/uibase/app/docst.cxx1
2 files changed, 11 insertions, 7 deletions
diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx
index 99854aaf6aac..edec1e0412ba 100644
--- a/sw/source/ui/frmdlg/frmpage.cxx
+++ b/sw/source/ui/frmdlg/frmpage.cxx
@@ -1750,13 +1750,16 @@ DeactivateRC SwFramePage::DeactivatePage(SfxItemSet * _pSet)
{
FillItemSet( _pSet );
- //FillItemSet doesn't set the anchor into the set when it matches
- //the original. But for the other pages we need the current anchor.
- SwWrtShell* pSh = m_bFormat ? ::GetActiveWrtShell()
- : getFrameDlgParentShell();
- RndStdIds eAnchorId = GetAnchor();
- SwFormatAnchor aAnc( eAnchorId, pSh->GetPhyPageNum() );
- _pSet->Put( aAnc );
+ if (!m_bFormat) // tdf#112574 no anchor in styles
+ {
+ //FillItemSet doesn't set the anchor into the set when it matches
+ //the original. But for the other pages we need the current anchor.
+ SwWrtShell* pSh = m_bFormat ? ::GetActiveWrtShell()
+ : getFrameDlgParentShell();
+ RndStdIds eAnchorId = GetAnchor();
+ SwFormatAnchor aAnc( eAnchorId, pSh->GetPhyPageNum() );
+ _pSet->Put( aAnc );
+ }
}
return DeactivateRC::LeavePage;
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index f8c424db280f..d6ef4503e661 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -1237,6 +1237,7 @@ SfxStyleFamily SwDocShell::MakeByExample( const OUString &rName, SfxStyleFamily
SfxItemSet aSet(GetPool(), aFrameFormatSetRange );
pCurrWrtShell->GetFlyFrameAttr( aSet );
+ aSet.ClearItem(RES_ANCHOR); // tdf#112574 no anchor in styles
SwFrameFormat* pFFormat = pCurrWrtShell->GetSelectedFrameFormat();
pFrame->SetDerivedFrom( pFFormat );