diff options
Diffstat (limited to 'editeng/source/editeng/impedit2.cxx')
-rw-r--r-- | editeng/source/editeng/impedit2.cxx | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index c15f0fde7cbf..025182a07bb8 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -2973,8 +2973,21 @@ bool ImpEditEngine::UpdateFields() std::unique_ptr<EditCharAttribField> pCurrent(new EditCharAttribField(rField)); rField.Reset(); - if ( aStatus.MarkFields() ) + if (!aStatus.MarkNonUrlFields() && !aStatus.MarkUrlFields()) + ; // nothing marked + else if (aStatus.MarkNonUrlFields() && aStatus.MarkUrlFields()) rField.GetFieldColor() = GetColorConfig().GetColorValue( svtools::WRITERFIELDSHADINGS ).nColor; + else + { + bool bURL = false; + if (const SvxFieldItem* pFieldItem = dynamic_cast<const SvxFieldItem*>(rField.GetItem())) + { + if (const SvxFieldData* pFieldData = pFieldItem->GetField()) + bURL = (dynamic_cast<const SvxURLField* >(pFieldData) != nullptr); + } + if ((bURL && aStatus.MarkUrlFields()) || (!bURL && aStatus.MarkNonUrlFields())) + rField.GetFieldColor() = GetColorConfig().GetColorValue( svtools::WRITERFIELDSHADINGS ).nColor; + } const OUString aFldValue = GetEditEnginePtr()->CalcFieldValue( |