Browse Source

Fix measurement corner case for the Padding element, where the negative padding could result with negative SpacePlan

Marcin Ziąbek 3 months ago
parent
commit
3ebd0e8c2a
1 changed files with 6 additions and 6 deletions
  1. 6 6
      Source/QuestPDF/Elements/Padding.cs

+ 6 - 6
Source/QuestPDF/Elements/Padding.cs

@@ -26,17 +26,17 @@ namespace QuestPDF.Elements
             if (measure.Type is SpacePlanType.Empty or SpacePlanType.Wrap)
             if (measure.Type is SpacePlanType.Empty or SpacePlanType.Wrap)
                 return measure;
                 return measure;
 
 
+            var newWidth = Math.Max(0, measure.Width + Left + Right);
+            var newHeight = Math.Max(0, measure.Height + Top + Bottom);
+            
             var newSize = new Size(
             var newSize = new Size(
-                measure.Width + Left + Right,
-                measure.Height + Top + Bottom);
+                newWidth,
+                newHeight);
             
             
             if (measure.Type == SpacePlanType.PartialRender)
             if (measure.Type == SpacePlanType.PartialRender)
                 return SpacePlan.PartialRender(newSize);
                 return SpacePlan.PartialRender(newSize);
             
             
-            if (measure.Type == SpacePlanType.FullRender)
-                return SpacePlan.FullRender(newSize);
-            
-            throw new NotSupportedException();
+            return SpacePlan.FullRender(newSize);
         }
         }
 
 
         internal override void Draw(Size availableSpace)
         internal override void Draw(Size availableSpace)