relayoutDataList = new RelayoutDataList(localChildren.size()); relayoutData = relayoutDataList.get(offset); relayoutData.setLayoutState(c.copyStateForRelayout()); relayoutData.setChildOffset(childOffset); relayoutDataList.markRun(offset, previousChildBox, child);
relayoutDataList = new RelayoutDataList(localChildren.size()); relayoutData = relayoutDataList.get(offset); relayoutData.setLayoutState(c.copyStateForRelayout()); relayoutData.setChildOffset(childOffset); relayoutDataList.markRun(offset, previousChildBox, child);
private static int relayoutRun( LayoutContext c, List localChildren, BlockBox block, RelayoutDataList relayoutDataList, int start, int end, boolean onNewPage) { int childOffset = relayoutDataList.get(start).getChildOffset(); BlockBox child = (BlockBox) localChildren.get(i); RelayoutData relayoutData = relayoutDataList.get(i);
private static int relayoutRun( LayoutContext c, List localChildren, BlockBox block, RelayoutDataList relayoutDataList, int start, int end, boolean onNewPage) { int childOffset = relayoutDataList.get(start).getChildOffset(); BlockBox child = (BlockBox) localChildren.get(i); RelayoutData relayoutData = relayoutDataList.get(i);
runEnd = offset; } else if (offset > 0) { RelayoutData previousRelayoutData = relayoutDataList.get(offset - 1); if (previousRelayoutData.isEndsRun()) { mightNeedRelayout = true; int runStart = relayoutDataList.getRunStart(runEnd); if ( isPageBreakBetweenChildBoxes(relayoutDataList, runStart, runEnd, c, block) ) { result.setChanged(true);
runEnd = offset; } else if (offset > 0) { RelayoutData previousRelayoutData = relayoutDataList.get(offset - 1); if (previousRelayoutData.isEndsRun()) { mightNeedRelayout = true; int runStart = relayoutDataList.getRunStart(runEnd); Box runEndChild = block.getChild(runEnd); if (c.getRootLayer().crossesPageBreak(c,
public void markRun(int offset, BlockBox previous, BlockBox current) { RelayoutData previousData = get(offset - 1); RelayoutData currentData = get(offset); IdentValue previousAfter = previous.getStyle().getIdent(CSSName.PAGE_BREAK_AFTER); IdentValue currentBefore = current.getStyle().getIdent(CSSName.PAGE_BREAK_BEFORE); if ((previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AUTO) || (previousAfter == IdentValue.AUTO && currentBefore == IdentValue.AVOID) || (previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AVOID)) { if (! previousData.isInRun()) { previousData.setStartsRun(true); } previousData.setInRun(true); currentData.setInRun(true); if (offset == _hints.size() - 1) { currentData.setEndsRun(true); } } else { if (previousData.isInRun()) { previousData.setEndsRun(true); } } }
public void markRun(int offset, BlockBox previous, BlockBox current) { RelayoutData previousData = get(offset - 1); RelayoutData currentData = get(offset); IdentValue previousAfter = previous.getStyle().getIdent(CSSName.PAGE_BREAK_AFTER); IdentValue currentBefore = current.getStyle().getIdent(CSSName.PAGE_BREAK_BEFORE); if ((previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AUTO) || (previousAfter == IdentValue.AUTO && currentBefore == IdentValue.AVOID) || (previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AVOID)) { if (! previousData.isInRun()) { previousData.setStartsRun(true); } previousData.setInRun(true); currentData.setInRun(true); if (offset == _hints.size() - 1) { currentData.setEndsRun(true); } } else { if (previousData.isInRun()) { previousData.setEndsRun(true); } } }