diff --git a/Greenshot/Drawing/Fields/AbstractFieldHolder.cs b/Greenshot/Drawing/Fields/AbstractFieldHolder.cs index 1a31e073e..6be20aa92 100644 --- a/Greenshot/Drawing/Fields/AbstractFieldHolder.cs +++ b/Greenshot/Drawing/Fields/AbstractFieldHolder.cs @@ -132,7 +132,7 @@ namespace Greenshot.Drawing.Fields public object GetFieldValue(IFieldType fieldType) { - return GetField(fieldType).Value; + return GetField(fieldType)?.Value; } #region convenience methods to save us some casts outside @@ -166,9 +166,9 @@ namespace Greenshot.Drawing.Fields return Convert.ToBoolean(GetFieldValue(fieldType)); } - public Color GetFieldValueAsColor(IFieldType fieldType) + public Color GetFieldValueAsColor(IFieldType fieldType, Color defaultColor = default(Color)) { - return (Color)GetFieldValue(fieldType); + return (Color)(GetFieldValue(fieldType) ?? defaultColor); } #endregion diff --git a/Greenshot/Drawing/RectangleContainer.cs b/Greenshot/Drawing/RectangleContainer.cs index d7e2cb37e..92261ca7e 100644 --- a/Greenshot/Drawing/RectangleContainer.cs +++ b/Greenshot/Drawing/RectangleContainer.cs @@ -62,8 +62,8 @@ namespace Greenshot.Drawing { public override void Draw(Graphics graphics, RenderMode rm) { int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); + Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR, Color.Red); + Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR, Color.Transparent); bool shadow = GetFieldValueAsBool(FieldType.SHADOW); Rectangle rect = GuiRectangle.GetGuiRectangle(Left, Top, Width, Height);