summaryrefslogtreecommitdiff
path: root/editeng/source/editeng/impedit2.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/source/editeng/impedit2.cxx')
-rw-r--r--editeng/source/editeng/impedit2.cxx15
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(