Skip to content

Commit 0e969be

Browse files
committed
Improve float renderer occupied area calculation
DEVSIX-1381
1 parent b8ddb83 commit 0e969be

File tree

2 files changed

+2
-10
lines changed

2 files changed

+2
-10
lines changed

layout/src/main/java/com/itextpdf/layout/renderer/BlockRenderer.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,6 @@ public LayoutResult layout(LayoutContext layoutContext) {
350350
if (result.getOccupiedArea() != null) {
351351
if (!FloatingHelper.isRendererFloating(childRenderer)) { // this check is needed only if margins collapsing is enabled
352352
occupiedArea.setBBox(Rectangle.getCommonRectangle(occupiedArea.getBBox(), result.getOccupiedArea().getBBox()));
353-
} else if (isAbsolutePosition() && childRenderer.getOccupiedArea() != null) {
354-
occupiedArea.setBBox(Rectangle.getCommonRectangle(occupiedArea.getBBox(), childRenderer.getOccupiedArea().getBBox()));
355353
}
356354
}
357355
if (marginsCollapsingEnabled) {
@@ -380,7 +378,7 @@ public LayoutResult layout(LayoutContext layoutContext) {
380378
occupiedArea.setBBox(Rectangle.getCommonRectangle(occupiedArea.getBBox(), layoutBox));
381379
}
382380

383-
if (FloatingHelper.isRendererFloating(this) || isCellRenderer) {
381+
if (isAbsolutePosition() || FloatingHelper.isRendererFloating(this) || isCellRenderer) {
384382
FloatingHelper.includeChildFloatsInOccupiedArea(floatRendererAreas, this);
385383
}
386384

layout/src/main/java/com/itextpdf/layout/renderer/FloatingHelper.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,15 +233,9 @@ static LayoutArea adjustResultOccupiedAreaForFloatAndClear(IRenderer renderer, L
233233
}
234234

235235
static void includeChildFloatsInOccupiedArea(List<Rectangle> floatRendererAreas, IRenderer renderer) {
236-
Rectangle bBox = renderer.getOccupiedArea().getBBox();
237-
float lowestFloatBottom = bBox.getBottom();
238236
for (Rectangle floatBox : floatRendererAreas) {
239-
if (floatBox.getBottom() < lowestFloatBottom) {
240-
lowestFloatBottom = floatBox.getBottom();
241-
}
237+
renderer.getOccupiedArea().setBBox(Rectangle.getCommonRectangle(renderer.getOccupiedArea().getBBox(), floatBox));
242238
}
243-
bBox.setHeight(bBox.getTop() - lowestFloatBottom)
244-
.setY(lowestFloatBottom);
245239
}
246240

247241
static MinMaxWidth calculateMinMaxWidthForFloat(AbstractRenderer renderer, FloatPropertyValue floatPropertyVal) {

0 commit comments

Comments
 (0)