@@ -311,7 +311,6 @@ public LayoutResult layout(LayoutContext layoutContext) {
311
311
312
312
layoutBox .decreaseHeight (rowHeight );
313
313
}
314
-
315
314
if (split ) {
316
315
TableRenderer [] splitResult = split (row , hasContent );
317
316
for (int col = 0 ; col < currentRow .length ; col ++) {
@@ -343,23 +342,30 @@ public LayoutResult layout(LayoutContext layoutContext) {
343
342
}
344
343
345
344
if (row == rowRange .getFinishRow () && footerRenderer != null ) {
346
- footerRenderer .getOccupiedAreaBBox ().setY (splitResult [0 ].getOccupiedAreaBBox ().getY () - footerRenderer .getOccupiedAreaBBox ().getHeight ());
345
+ footerRenderer .getOccupiedAreaBBox ().setY (splitResult [0 ].getOccupiedAreaBBox ().getY ()
346
+ - footerRenderer .getOccupiedAreaBBox ().getHeight ());
347
347
for (IRenderer renderer : footerRenderer .getChildRenderers ()) {
348
- renderer .move (0 , splitResult [0 ].getOccupiedAreaBBox ().getY () - renderer .getOccupiedArea ().getBBox ().getY () - renderer .getOccupiedArea ().getBBox ().getHeight ());
348
+ renderer .move (0 , splitResult [0 ].getOccupiedAreaBBox ().getY ()
349
+ - renderer .getOccupiedArea ().getBBox ().getY () - renderer .getOccupiedArea ().getBBox ().getHeight ());
349
350
}
350
351
} else {
351
352
adjustFooterAndFixOccupiedArea (layoutBox );
352
353
}
353
354
354
355
applyBorderBox (occupiedArea .getBBox (), true );
355
356
applyMargins (occupiedArea .getBBox (), true );
356
- int status = (childRenderers .isEmpty () && footerRenderer == null ) || getPropertyAsBoolean (Property .KEEP_TOGETHER )
357
- ? LayoutResult .NOTHING
358
- : LayoutResult .PARTIAL ;
359
- if (status == LayoutResult .NOTHING && getPropertyAsBoolean (Property .FORCED_PLACEMENT )) {
360
- return new LayoutResult (LayoutResult .FULL , occupiedArea , null , null );
357
+ if (getPropertyAsBoolean (Property .KEEP_TOGETHER ) && !getPropertyAsBoolean (Property .FORCED_PLACEMENT )) {
358
+ return new LayoutResult (LayoutResult .NOTHING , occupiedArea , null , this );
359
+ } else {
360
+ int status = (childRenderers .isEmpty () && footerRenderer == null )
361
+ ? LayoutResult .NOTHING
362
+ : LayoutResult .PARTIAL ;
363
+ if (status == LayoutResult .NOTHING && getPropertyAsBoolean (Property .FORCED_PLACEMENT )) {
364
+ return new LayoutResult (LayoutResult .FULL , occupiedArea , null , null );
365
+ } else {
366
+ return new LayoutResult (status , occupiedArea , splitResult [0 ], splitResult [1 ]);
367
+ }
361
368
}
362
- return new LayoutResult (status , occupiedArea , splitResult [0 ], splitResult [1 ]);
363
369
} else {
364
370
childRenderers .addAll (currChildRenderers );
365
371
currChildRenderers .clear ();
0 commit comments