cbowditch    2004/04/26 07:28:30

  Modified:    src/java/org/apache/fop/layoutmgr LineLayoutManager.java
  Log:
  applied Luca Furini's patch from bug #28314
  fixes problems with justification on last line in a block.
  
  Revision  Changes    Path
  1.18      +14 -5     xml-fop/src/java/org/apache/fop/layoutmgr/LineLayoutManager.java
  
  Index: LineLayoutManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LineLayoutManager.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- LineLayoutManager.java    2 Apr 2004 10:38:29 -0000       1.17
  +++ LineLayoutManager.java    26 Apr 2004 14:28:30 -0000      1.18
  @@ -129,7 +129,6 @@
       public BreakPoss getNextBreakPoss(LayoutContext context) {
           // Get a break from currently active child LM
           // Set up constraints for inline level managers
  -
           LayoutManager curLM ; // currently active LM
           BreakPoss prev = null;
           BreakPoss bp = null; // proposed BreakPoss
  @@ -243,8 +242,8 @@
                           /* If we are not in justified text, we can end the line at
                            * prevBP.
                            */
  -                        if (prevBP == null) {
                               vecInlineBreaks.add(bp);
  +                        if (prevBP == null) {
                               prevBP = bp;
                           }
                           break;
  @@ -295,6 +294,7 @@
           if (bp == null) {
               return null;
           }
  +
           if (prevBP == null) {
               BreakPoss prevLineEnd = (iPrevLineEnd == 0)
                   ? null
  @@ -389,13 +389,22 @@
       /** Test whether all breakposs in vecInlineBreaks
           back to and including prev could end line */
       private boolean prevCouldEndLine(BreakPoss prev) {
  +        if (!isFinished()) {
  +            return false;
  +        }
           ListIterator bpIter =
               vecInlineBreaks.listIterator(vecInlineBreaks.size());
           boolean couldEndLine = true;
           while (bpIter.hasPrevious()) {
               BreakPoss bp = (BreakPoss) bpIter.previous();
  -            couldEndLine = bp.couldEndLine();
  -            if (!couldEndLine || bp == prev) break;
  +            if (bp == prev) {
  +                break;
  +            } else {
  +                couldEndLine = bp.isSuppressible();
  +                if (!couldEndLine) {
  +                    break;
  +                }
  +            }
           }
           return couldEndLine;
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to