sc/source/core/data/column4.cxx | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-)
New commits: commit cf847a7287148304afe98f0efe68cdf9617d4e44 Author: Samuel Mehrbrodt <[email protected]> Date: Tue Jan 23 10:11:16 2018 +0100 Updating images should not depend on unrelated condition Instead update them unconditionally as it is done with comments. The data range has been set beforehand (considering the option to include boundary columns with images only) so at this point the swapping should happen unconditionally. Follow-up for 3a2a430ae8e2c1647c18d8904477949f6e2e7941 Change-Id: I1d75dd6e22db5cc28aa45f7b86dab013f3595199 Reviewed-on: https://gerrit.libreoffice.org/48383 Reviewed-by: Samuel Mehrbrodt <[email protected]> Tested-by: Samuel Mehrbrodt <[email protected]> diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx index a99a78564c7f..14a5e89c2b54 100644 --- a/sc/source/core/data/column4.cxx +++ b/sc/source/core/data/column4.cxx @@ -1087,6 +1087,23 @@ void ScColumn::Swap( ScColumn& rOther, SCROW nRow1, SCROW nRow2, bool bPattern ) maCellNotes.swap(nRow1, nRow2, rOther.maCellNotes, nRow1); maBroadcasters.swap(nRow1, nRow2, rOther.maBroadcasters, nRow1); + // Update draw object anchors + ScDrawLayer* pDrawLayer = GetDoc()->GetDrawLayer(); + if (pDrawLayer) + { + for (SCROW nRow = nRow1; nRow <= nRow2; ++nRow) + { + ScAddress aThisCellPos(GetCol(), nRow, GetTab()); + ScAddress aOtherCellPos(rOther.GetCol(), nRow, GetTab()); + std::vector<SdrObject*> pThisColObjects = pDrawLayer->GetObjectsAnchoredToCell(aThisCellPos); + std::vector<SdrObject*> pOtherColObjects = pDrawLayer->GetObjectsAnchoredToCell(aOtherCellPos); + if (!pThisColObjects.empty()) + UpdateDrawObjectsForRow(pThisColObjects, rOther.GetCol(), nRow); + if (!pOtherColObjects.empty()) + rOther.UpdateDrawObjectsForRow(pOtherColObjects, GetCol(), nRow); + } + } + if (bPattern) { for (SCROW nRow = nRow1; nRow <= nRow2; ++nRow) @@ -1098,21 +1115,6 @@ void ScColumn::Swap( ScColumn& rOther, SCROW nRow1, SCROW nRow2, bool bPattern ) SetPattern(nRow, *pPat2); rOther.SetPattern(nRow, *pPat1); } - - // Update draw object anchors - ScDrawLayer* pDrawLayer = GetDoc()->GetDrawLayer(); - if (pDrawLayer) - { - ScAddress aThisCellPos(GetCol(), nRow, GetTab()); - ScAddress aOtherCellPos(rOther.GetCol(), nRow, GetTab()); - std::vector<SdrObject*> pThisColObjects = pDrawLayer->GetObjectsAnchoredToCell(aThisCellPos); - std::vector<SdrObject*> pOtherColObjects = pDrawLayer->GetObjectsAnchoredToCell(aOtherCellPos); - if (!pThisColObjects.empty()) - UpdateDrawObjectsForRow(pThisColObjects, rOther.GetCol(), nRow); - if (!pOtherColObjects.empty()) - rOther.UpdateDrawObjectsForRow(pOtherColObjects, GetCol(), nRow); - - } } } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
