diff options
author | Eike Rathke <erack@redhat.com> | 2017-02-09 18:54:15 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-02-09 18:54:20 +0100 |
commit | aeb465a458fc7ba02e3b1ca6b4193488defef511 (patch) | |
tree | b728e98d69cdffea527dfbf178cfe399d80ae53a /sc | |
parent | 08a0850bfe30ee8666ccb04fc8782b03ba6cdfc5 (diff) |
yet more 3D flag to preserve cases, tdf#103890 follow-up
Change-Id: I8b8cdb01325d0cd54e436c1043c243eedfddbfb0
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/tool/token.cxx | 7 |
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: |