Skip to content

Commit 8a3dc56

Browse files
committed
Restore non-text inline elements more carefully
DEVSIX-1053
1 parent ad0c281 commit 8a3dc56

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ public LineLayoutResult layout(LayoutContext layoutContext) {
527527
children.add(newRenderer);
528528

529529
// Insert non-text renderers
530-
if ((pos == lineGlyphs.size() - 1 || lineGlyphs.get(pos + 1).renderer != renderer) && insertAfter.containsKey((TextRenderer)renderer)) {
530+
if (insertAfter.containsKey((TextRenderer)renderer)) {
531531
children.add(insertAfter.get((TextRenderer)renderer));
532532
insertAfter.remove((TextRenderer)renderer);
533533
}
@@ -573,7 +573,11 @@ public LineLayoutResult layout(LayoutContext layoutContext) {
573573
((TextRenderer) child).occupiedArea.getBBox().setX(currentXPos).setWidth(currentWidth);
574574
} else {
575575
currentWidth = child.getOccupiedArea().getBBox().getWidth();
576-
child.getOccupiedArea().getBBox().setX(currentXPos);
576+
if (child instanceof AbstractRenderer) {
577+
child.move(currentXPos - child.getOccupiedArea().getBBox().getX(), 0);
578+
} else {
579+
child.getOccupiedArea().getBBox().setX(currentXPos);
580+
}
577581
}
578582
currentXPos += currentWidth;
579583
}

0 commit comments

Comments
 (0)