diff --git a/Greenshot/Drawing/SpeechbubbleContainer.cs b/Greenshot/Drawing/SpeechbubbleContainer.cs index cf4715d6e..8b426358f 100644 --- a/Greenshot/Drawing/SpeechbubbleContainer.cs +++ b/Greenshot/Drawing/SpeechbubbleContainer.cs @@ -131,20 +131,19 @@ namespace Greenshot.Drawing { int tailWidth = (Math.Abs(rect.Width) + Math.Abs(rect.Height)) / 20; GraphicsPath bubble = new GraphicsPath(); + + Rectangle bubbleRect = GuiRectangle.GetGuiRectangle(0, 0, rect.Width, rect.Height); // adapt corner radius to small rectangle dimensions - int smallerSideLength = Math.Min(rect.Width, rect.Height); - int cornerRadius = smallerSideLength>60 ? 30 : smallerSideLength/2; - if (cornerRadius > 5) { - Rectangle bubbleRect = GuiRectangle.GetGuiRectangle(0, 0, rect.Width, rect.Height); - bubbleRect = Rectangle.Inflate(bubbleRect, -lineThickness, -lineThickness); - bubble.AddArc(bubbleRect.X, bubbleRect.Y, cornerRadius, cornerRadius, 180, 90); - bubble.AddArc(bubbleRect.X + bubbleRect.Width - cornerRadius, bubbleRect.Y, cornerRadius, cornerRadius, 270, 90); - bubble.AddArc(bubbleRect.X + bubbleRect.Width - cornerRadius, bubbleRect.Y + bubbleRect.Height - cornerRadius, cornerRadius, cornerRadius, 0, 90); - bubble.AddArc(bubbleRect.X, bubbleRect.Y + bubbleRect.Height - cornerRadius, cornerRadius, cornerRadius, 90, 90); - } - - //bubble.AddRectangle(GuiRectangle.GetGuiRectangle(0, 0, rect.Width, rect.Height)); - //bubble.AddEllipse(0, 0, Math.Abs(rect.Width), Math.Abs(rect.Height)); + int smallerSideLength = Math.Min(bubbleRect.Width, bubbleRect.Height); + int cornerRadius = Math.Min(30, smallerSideLength / 2 - lineThickness); + if (cornerRadius > 0) { + bubble.AddArc(bubbleRect.X, bubbleRect.Y, cornerRadius, cornerRadius, 180, 90); + bubble.AddArc(bubbleRect.X + bubbleRect.Width - cornerRadius, bubbleRect.Y, cornerRadius, cornerRadius, 270, 90); + bubble.AddArc(bubbleRect.X + bubbleRect.Width - cornerRadius, bubbleRect.Y + bubbleRect.Height - cornerRadius, cornerRadius, cornerRadius, 0, 90); + bubble.AddArc(bubbleRect.X, bubbleRect.Y + bubbleRect.Height - cornerRadius, cornerRadius, cornerRadius, 90, 90); + } else { + bubble.AddRectangle(bubbleRect); + } bubble.CloseAllFigures(); GraphicsPath tail = new GraphicsPath();