summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-02-09 18:54:15 +0100
committerEike Rathke <erack@redhat.com>2017-02-09 18:54:20 +0100
commitaeb465a458fc7ba02e3b1ca6b4193488defef511 (patch)
treeb728e98d69cdffea527dfbf178cfe399d80ae53a
parent08a0850bfe30ee8666ccb04fc8782b03ba6cdfc5 (diff)
yet more 3D flag to preserve cases, tdf#103890 follow-up
Change-Id: I8b8cdb01325d0cd54e436c1043c243eedfddbfb0
-rw-r--r--sc/source/core/tool/token.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index 02f8a041480c..dcbde7029979 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -3167,7 +3167,12 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove(
}
rRef.SetRange(aAbs, rNewPos);
- rRef.Ref1.SetFlag3D(aAbs.aStart.Tab() != rNewPos.Tab() || !rRef.Ref1.IsTabRel());
+ // Absolute sheet reference => set 3D flag.
+ // More than one sheet referenced => has to have both 3D flags.
+ // If end part has 3D flag => start part must have it too.
+ rRef.Ref2.SetFlag3D(aAbs.aStart.Tab() != aAbs.aEnd.Tab() || !rRef.Ref2.IsTabRel());
+ rRef.Ref1.SetFlag3D(aAbs.aStart.Tab() != rNewPos.Tab() || !rRef.Ref1.IsTabRel() ||
+ rRef.Ref2.IsFlag3D());
}
break;
case svExternalSingleRef: