diff options
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/doc/textboxhelper.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx index 5f1462e2eb49..ae7084605e4c 100644 --- a/sw/source/core/doc/textboxhelper.cxx +++ b/sw/source/core/doc/textboxhelper.cxx @@ -35,6 +35,7 @@ #include <svl/itemiter.hxx> #include <comphelper/sequenceashashmap.hxx> #include <sal/log.hxx> +#include <svx/anchorid.hxx> #include <com/sun/star/document/XActionLockable.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> @@ -697,6 +698,12 @@ void SwTextBoxHelper::syncFlyFrameAttr(SwFrameFormat& rShape, SfxItemSet const& const SfxPoolItem* pItem = aIter.GetCurItem(); do { + if (rShape.GetAnchor().GetAnchorId() != RndStdIds::FLY_AS_CHAR) + { + SwFormatAnchor pShapeAnch = rShape.GetAnchor(); + aTextBoxSet.Put(pShapeAnch); + } + switch (pItem->Which()) { case RES_VERT_ORIENT: @@ -708,6 +715,10 @@ void SwTextBoxHelper::syncFlyFrameAttr(SwFrameFormat& rShape, SfxItemSet const& if (!aRect.IsEmpty()) aOrient.SetPos(aOrient.GetPos() + aRect.getY()); + if (rShape.GetAnchor().GetAnchorId() == RndStdIds::FLY_AT_PAGE) + { + aOrient.SetRelationOrient(rShape.GetVertOrient().GetRelationOrient()); + } aTextBoxSet.Put(aOrient); // restore height (shrunk for extending beyond the page bottom - tdf#91260) @@ -728,6 +739,10 @@ void SwTextBoxHelper::syncFlyFrameAttr(SwFrameFormat& rShape, SfxItemSet const& if (!aRect.IsEmpty()) aOrient.SetPos(aOrient.GetPos() + aRect.getX()); + if (rShape.GetAnchor().GetAnchorId() == RndStdIds::FLY_AT_PAGE) + { + aOrient.SetRelationOrient(rShape.GetHoriOrient().GetRelationOrient()); + } aTextBoxSet.Put(aOrient); } break; |