summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/filter/ww8/rtfattributeoutput.cxx2
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx7
2 files changed, 9 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 6c37ce00be0d..37f50a9e6a89 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -1679,6 +1679,8 @@ void RtfAttributeOutput::WriteField_Impl(const SwField* const pField, ww::eField
if (bHasInstructions)
{
m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_FIELD);
+ if (pField && (pField->GetSubType() & FIXEDFLD))
+ m_aRunText->append(OOO_STRING_SVTOOLS_RTF_FLDLOCK);
m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_FLDINST
" ");
m_aRunText->append(
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index de65515cbf17..5d120613e4d5 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -1916,6 +1916,13 @@ void WW8Export::OutputField( const SwField* pField, ww::eField eFieldType,
if (nSubType == REF_SEQUENCEFLD)
aField15[0] |= (0x4 << 5);
}
+ // This ought to apply to any field, but just to be safe, start off with DATE/TIME only.
+ if (pField->GetTyp()->Which() == SwFieldIds::DateTime
+ && (pField->GetSubType() & FIXEDFLD))
+ {
+ //bit 5 - Locked: do not recalculate field
+ aField15[1] |= 0x10;
+ }
}
pFieldP->Append( Fc2Cp( Strm().Tell() ), aField15 );