summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-07-29 22:33:56 -0400
committerAndras Timar <andras.timar@collabora.com>2014-08-21 21:24:23 +0200
commit6c0182dfb96309bfc5054424fa41c1c6d2475f51 (patch)
treecf367da5b0539602aad0d6b21991653bce5d91e3 /sc
parent4a051ba9928ffd05351330b74316034d23cb443e (diff)
fdo#81330: When moving to a different sheet, set 3D flag on.
Change-Id: I16c6e687259635c4d0ac0e5dab0140941b409bc8 (cherry picked from commit 5e55d5ffb70437e917e4092f4030d5a454fd20d6) Reviewed-on: https://gerrit.libreoffice.org/10637 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/token.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index c2899600f8b1..d39255076ab4 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -2827,6 +2827,8 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove(
ScRange aOldRange = rCxt.maRange;
aOldRange.Move(-rCxt.mnColDelta, -rCxt.mnRowDelta, -rCxt.mnTabDelta);
+ bool b3DFlag = rOldPos.Tab() != rNewPos.Tab();
+
FormulaToken** p = pCode;
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
@@ -2845,6 +2847,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove(
}
rRef.SetAddress(aAbs, rNewPos);
+ rRef.SetFlag3D(b3DFlag);
}
break;
case svDoubleRef:
@@ -2859,6 +2862,8 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove(
}
rRef.SetRange(aAbs, rNewPos);
+ if (b3DFlag)
+ rRef.Ref1.SetFlag3D(true);
}
break;
case svIndex: