cbowditch    2004/05/20 01:11:31

  Modified:    src/java/org/apache/fop/layoutmgr BlockLayoutManager.java
  Log:
  fixed problem with top/bottom borders on regular blocks
  
  Revision  Changes    Path
  1.18      +17 -13    
xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java
  
  Index: BlockLayoutManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- BlockLayoutManager.java   15 May 2004 21:51:59 -0000      1.17
  +++ BlockLayoutManager.java   20 May 2004 08:11:31 -0000      1.18
  @@ -1,12 +1,12 @@
   /*
    * Copyright 1999-2004 The Apache Software Foundation.
  - * 
  + *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -49,9 +49,9 @@
       private CommonMarginBlock marginProps;
   
       /* holds the (one-time use) fo:block space-before
  -       and -after properties.  Large fo:blocks are split 
  +       and -after properties.  Large fo:blocks are split
          into multiple Area.Blocks to accomodate the subsequent
  -       regions (pages) they are placed on.  space-before 
  +       regions (pages) they are placed on.  space-before
          is applied at the beginning of the first
          Block and space-after at the end of the last Block
          used in rendering the fo:block.
  @@ -156,7 +156,7 @@
           LayoutManager curLM; // currently active LM
   
           int ipd = context.getRefIPD();
  -        int iIndents = marginProps.startIndent + marginProps.endIndent; 
  +        int iIndents = marginProps.startIndent + marginProps.endIndent;
           int bIndents = borderProps.getBPPaddingAndBorder(false);
           ipd -= iIndents;
   
  @@ -178,7 +178,7 @@
           // Set context for percentage property values.
           fobj.setLayoutDimension(PercentBase.BLOCK_IPD, ipd);
           fobj.setLayoutDimension(PercentBase.BLOCK_BPD, -1);
  -        
  +
           while ((curLM = getChildLM()) != null) {
               // Make break positions and return blocks!
               // Set up a LayoutContext
  @@ -260,7 +260,7 @@
           double adjust = layoutContext.getSpaceAdjust();
           addBlockSpacing(adjust, foBlockSpaceBefore);
           foBlockSpaceBefore = null;
  -        
  +
           addID();
           addMarkers(true, true);
   
  @@ -323,13 +323,17 @@
               // Get reference IPD from parentArea
               int referenceIPD = parentArea.getIPD();
               curBlockArea.setIPD(referenceIPD);
  -            
  +
               // Set the width of the block based on the parent block
  +            // Need to be careful though, if parent is BC then width may not be set
  +            int parentwidth = 0;
               if (parentArea instanceof BlockParent) {
  -                curBlockArea.setWidth(((BlockParent) parentArea).getWidth());
  -            } else {
  -                curBlockArea.setWidth(referenceIPD);
  +                parentwidth = ((BlockParent) parentArea).getWidth();
  +            }
  +            if (parentwidth == 0) {
  +                parentwidth = referenceIPD;
               }
  +            curBlockArea.setWidth(parentwidth);
               setCurrentArea(curBlockArea); // ??? for generic operations
           }
           return curBlockArea;
  
  
  

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

Reply via email to