diff -uNr sw.old/source/core/doc/swtable.cxx sw.new/source/core/doc/swtable.cxx --- sw.old/source/core/doc/swtable.cxx 2007-01-23 10:16:38.000000000 +0800 +++ sw.new/source/core/doc/swtable.cxx 2007-12-12 14:03:02.000000000 +0800 @@ -727,6 +727,7 @@ } else { + SwTableBox *pOldBox = pBox; //Aktuelle Position (linke und rechte Kante berechnen) und im //alten TabCols suchen. Im neuen TabCols die Werte vergleichen und //wenn es Unterschiede gibt die Box entsprechend anpassen. @@ -835,7 +836,23 @@ if ( aFmtFrmSize.GetWidth() < 0 ) aFmtFrmSize.SetWidth( -aFmtFrmSize.GetWidth() ); rParm.aShareFmts.SetSize( *pBox, aFmtFrmSize ); - bUp = TRUE; + bUp = true; + + if(bUp && ((long)rParm.rOld.GetLeft() != (long)rParm.rNew.GetLeft())) + { + SwTableLines &rLines = pBox->GetTabLines(); + if(rLines.Count()) + { + SwTableLine *pLine = rLines[rLines.Count()-1]; + SwTableBoxes &rBoxes = pLine->GetTabBoxes(); + if(rBoxes.Count() && pOldBox != rBoxes[0]) + { + USHORT nPos = rParm.aBoxArr.GetPos(pBox); + if(nPos >= 0 && nPos < rParm.aBoxArr.Count()) + rParm.aBoxArr.Remove( nPos ); + } + } + } } //Wenn es links noch Boxen gibt, die LeftDiff nicht auf den Upper