diff --git a/Greenshot/Drawing/DrawableContainer.cs b/Greenshot/Drawing/DrawableContainer.cs index df6e3dae7..34ac7352b 100644 --- a/Greenshot/Drawing/DrawableContainer.cs +++ b/Greenshot/Drawing/DrawableContainer.cs @@ -290,7 +290,9 @@ namespace Greenshot.Drawing { } public virtual void Invalidate() { - _parent.Invalidate(DrawingBounds); + if (Status != EditStatus.UNDRAWN) { + _parent.Invalidate(DrawingBounds); + } } public void AlignToParent(HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment) { diff --git a/Greenshot/Drawing/SpeechbubbleContainer.cs b/Greenshot/Drawing/SpeechbubbleContainer.cs index 558ce05e8..552f56322 100644 --- a/Greenshot/Drawing/SpeechbubbleContainer.cs +++ b/Greenshot/Drawing/SpeechbubbleContainer.cs @@ -133,13 +133,16 @@ namespace Greenshot.Drawing { /// public override Rectangle DrawingBounds { get { - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - using (Pen pen = new Pen(lineColor, lineThickness)) { - using (GraphicsPath tailPath = CreateTail()) { - return Rectangle.Inflate(Rectangle.Union(Rectangle.Round(tailPath.GetBounds(new Matrix(), pen)),GuiRectangle.GetGuiRectangle(Left, Top, Width, Height)), lineThickness+2, lineThickness+2); + if (Status != EditStatus.UNDRAWN) { + int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); + Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); + using (Pen pen = new Pen(lineColor, lineThickness)) { + using (GraphicsPath tailPath = CreateTail()) { + return Rectangle.Inflate(Rectangle.Union(Rectangle.Round(tailPath.GetBounds(new Matrix(), pen)), GuiRectangle.GetGuiRectangle(Left, Top, Width, Height)), lineThickness + 2, lineThickness + 2); + } } } + return Rectangle.Empty; } }