tdf#132725 sw: SwUndoDelete: don't group if flys are be deleted

The fly would not be deleted by CanGrouping() but would be deleted later
in RedoImpl() via the IsAtStartOfSection() check so just force a new
Undo action in this case.

(regression from 91b2325808a75174f284c48c8b8afc118fad74e4
 and 28b77c89dfcafae82cf2a6d85731b643ff9290e5)

Change-Id: I68f9f6b7fd0306bc0853a370b1030463a0024edc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96002
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
diff --git a/sw/source/core/undo/undel.cxx b/sw/source/core/undo/undel.cxx
index cf063b2..ba625d5 100644
--- a/sw/source/core/undo/undel.cxx
+++ b/sw/source/core/undo/undel.cxx
@@ -558,6 +558,33 @@
        rCC.isLetterNumeric( *m_aSttStr, nUChrPos ) )
        return false;

    // tdf#132725 - if at-char/at-para flys would be deleted, don't group!
    // DelContentIndex() would be called at the wrong time here, the indexes
    // in the stored SwHistoryTextFlyCnt would be wrong when Undo is invoked
    for (SwFrameFormat const*const pFly : *pDoc->GetSpzFrameFormats())
    {
        SwFormatAnchor const& rAnchor(pFly->GetAnchor());
        switch (rAnchor.GetAnchorId())
        {
            case RndStdIds::FLY_AT_CHAR:
            case RndStdIds::FLY_AT_PARA:
            {
                SwPosition const*const pAnchorPos(rAnchor.GetContentAnchor());
                // can this really be null?
                if (pAnchorPos != nullptr
                    && ((rAnchor.GetAnchorId() == RndStdIds::FLY_AT_CHAR)
                        ? IsDestroyFrameAnchoredAtChar(*pAnchorPos, *pStt, *pEnd)
                        : IsSelectFrameAnchoredAtPara(*pAnchorPos, *pStt, *pEnd)))
                {
                    return false;
                }
            }
            break;
            default: // other types not relevant
            break;
        }
    }

    {
        SwRedlineSaveDatas aTmpSav;
        const bool bSaved = FillSaveData( rDelPam, aTmpSav, false );