From edbdd876908989833c69e49bf4f73434d8a3f9bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Srbeck=C3=BD?= Date: Mon, 11 Feb 2013 15:46:21 +0000 Subject: [PATCH] Save options only if they have been actually modified - in particular, this avoids saving of default values --- .../ICSharpCode.Core.Presentation/OptionBinding.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Main/ICSharpCode.Core.Presentation/OptionBinding.cs b/src/Main/ICSharpCode.Core.Presentation/OptionBinding.cs index 7b4273b31a..2cbc3f1737 100644 --- a/src/Main/ICSharpCode.Core.Presentation/OptionBinding.cs +++ b/src/Main/ICSharpCode.Core.Presentation/OptionBinding.cs @@ -196,12 +196,18 @@ namespace ICSharpCode.Core.Presentation object instance = isStatic ? null : FetchInstance(propertyDeclaringType); if (propertyInfo is PropertyInfo) { - (propertyInfo as PropertyInfo).SetValue(instance, value, null); + // Set only if the value is different from current value or default + if (!(propertyInfo as PropertyInfo).GetValue(instance, null).Equals(value)) { + (propertyInfo as PropertyInfo).SetValue(instance, value, null); + } return true; } if (propertyInfo is FieldInfo) { - (propertyInfo as FieldInfo).SetValue(instance, value); + // Set only if the value is different from current value or default + if (!(propertyInfo as FieldInfo).GetValue(instance).Equals(value)) { + (propertyInfo as FieldInfo).SetValue(instance, value); + } return true; }