View | Details | Raw Unified | Return to issue 123479
Collapse All | Expand All

(-)main/sw/source/core/layout/calcmove.cxx (-5 / +13 lines)
Lines 1299-1305 void SwCntntFrm::MakeAll() Link Here
1299
		if ( sal_True == (bMoveable = IsMoveable()) )
1299
		if ( sal_True == (bMoveable = IsMoveable()) )
1300
		{
1300
		{
1301
			SwFrm *pPre = GetIndPrev();
1301
			SwFrm *pPre = GetIndPrev();
1302
			if ( CheckMoveFwd( bMakePage, bKeep, bMovedBwd ) )
1302
			
1303
			/*matthieuriolo: only try to move forward, if you haven't yet*/
1304
			if (!bMovedFwd && CheckMoveFwd( bMakePage, bKeep, bMovedBwd ) )
1303
			{
1305
			{
1304
                SWREFRESHFN( this )
1306
                SWREFRESHFN( this )
1305
				bMovedFwd = sal_True;
1307
				bMovedFwd = sal_True;
Lines 1726-1733 void SwCntntFrm::MakeAll() Link Here
1726
        const sal_Bool bCheckForGrownBody = pOldUp->IsBodyFrm();
1728
        const sal_Bool bCheckForGrownBody = pOldUp->IsBodyFrm();
1727
        const long nOldBodyHeight = (pOldUp->Frm().*fnRect->fnGetHeight)();
1729
        const long nOldBodyHeight = (pOldUp->Frm().*fnRect->fnGetHeight)();
1728
1730
1729
		if ( !bMovedFwd && !MoveFwd( bMakePage, sal_False ) )
1731
		/*matthieuriolo adding bMovedBwd || which prevents an invalidation of the position through MoveFwd*/
1730
			bMakePage = sal_False;
1732
		if (bMovedBwd || (!bMovedFwd && !MoveFwd( bMakePage, sal_False ) ) ) {
1733
        	bMakePage = sal_False;
1734
		}
1735
		
1731
        SWREFRESHFN( this )
1736
        SWREFRESHFN( this )
1732
1737
1733
        // If MoveFwd moves the paragraph to the next page, a following
1738
        // If MoveFwd moves the paragraph to the next page, a following
Lines 1739-1746 void SwCntntFrm::MakeAll() Link Here
1739
        if ( bCheckForGrownBody && ! bMovedBwd && pOldUp != GetUpper() &&
1744
        if ( bCheckForGrownBody && ! bMovedBwd && pOldUp != GetUpper() &&
1740
             (pOldUp->Frm().*fnRect->fnGetHeight)() > nOldBodyHeight )
1745
             (pOldUp->Frm().*fnRect->fnGetHeight)() > nOldBodyHeight )
1741
            bMovedFwd = sal_False;
1746
            bMovedFwd = sal_False;
1742
        else
1747
        else {
1743
            bMovedFwd = sal_True;
1748
        	//matthieuriolo - if bMovedFwd will be set, then the frame will move back and forward (pages) while editing
1749
        	//matthieuriolo - if it is not set, footnotes will prevent the frame to moveback
1750
        	bMovedFwd = sal_True;
1751
        }
1744
1752
1745
        bFormatted = sal_False;
1753
        bFormatted = sal_False;
1746
		if ( bMoveOrFit && GetUpper() == pOldUp )
1754
		if ( bMoveOrFit && GetUpper() == pOldUp )

Return to issue 123479