From d9c56ff2a92416ccedd9612279b3f57b51147e60 Mon Sep 17 00:00:00 2001 From: "Krom, Robertus" Date: Wed, 21 Jun 2017 08:20:40 +0200 Subject: [PATCH] BUG-2225: This should fix an immediate issue, NullReferenceException, where the color is null. --- Greenshot/Drawing/Fields/AbstractFieldHolder.cs | 6 +++--- Greenshot/Drawing/RectangleContainer.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) 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);