tdf#130802 SwTextBoxHelper::syncFlyFrameAttr: fix dragging

Dragging the selected shapes resulted broken text boxes:
the text showed outside of the shapes. This is fixed in
the case of paragraph, character and page anchoring.

Co-authored-by: Tibor Nagy (NISZ)

Change-Id: Iaea65ee26bad60c09ada4875636416d4a7c7e80b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95136
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx
index 5f1462e..ae70846 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;