Index: src/org/apache/fop/fo/flow/TableCell.java
===================================================================
RCS file: /home/cvspublic/xml-fop/src/org/apache/fop/fo/flow/TableCell.java,v
retrieving revision 1.32
diff -u -r1.32 TableCell.java
--- src/org/apache/fop/fo/flow/TableCell.java	2001/06/14 21:22:54	1.32
+++ src/org/apache/fop/fo/flow/TableCell.java	2001/06/18 09:37:14
@@ -49,6 +49,7 @@
 
 		/* ivan demakov */
 		protected int borderHeight = 0;
+		protected int cellHeight = 0;
 
 		protected int height = 0;
 		protected int top; // Ypos of cell ???
@@ -118,6 +119,7 @@
 			}
 			else bRelativeAlign = false; // Align on a per-cell basis
 
+			this.cellHeight = this.properties.get("height").getLength().mvalue();
 		}
 
 
@@ -158,7 +160,7 @@
 				this.cellArea =
 						new AreaContainer(propMgr.getFontState(area.getFontInfo()),
 															startOffset, beforeOffset,
-															width, area.spaceLeft()- m_borderSeparation/2 + borderHeight/2,
+															width, spaceLeft - m_borderSeparation/2 + borderHeight/2,
 															Position.RELATIVE);
 
 				cellArea.foCreator=this;	// G Seshadri
@@ -194,6 +196,7 @@
 										return new Status(Status.AREA_FULL_SOME);
 								}
 						}
+
 						area.setMaxHeight(area.getMaxHeight() - spaceLeft +
 															this.cellArea.getMaxHeight());
 				}
@@ -218,7 +221,8 @@
 		// TableRow calls this. Anyone else?
 		public int getHeight() {
 				// return cellArea.getHeight() + spaceBefore + spaceAfter;
-				return cellArea.getHeight() + m_borderSeparation - borderHeight / 2;
+				if (cellHeight > 0) return cellHeight;
+				return cellArea.getHeight() + m_borderSeparation - borderHeight/2;
 		}
 
 		/** Called by TableRow to set final size of cell content rectangles and
@@ -290,6 +294,10 @@
 						this.beforeOffset = m_borderSeparation/2 +
 								bp.getBorderTopWidth(false) +	bp.getPaddingTop(false);
 						// bp.getBorderBeforeWidth(false) +	bp.getPaddingBefore(false);
+						if (this.cellHeight > 0) {
+								this.cellHeight += this.beforeOffset + m_borderSeparation/2 +
+										bp.getBorderBottomWidth(false) + bp.getPaddingBottom(false);
+						}
 				}
 				else {
 						//System.err.println("Collapse borders");
@@ -332,6 +340,9 @@
 
 						this.beforeOffset = borderBefore/2 + bp.getPaddingTop(false);
 						this.borderHeight = borderBefore + borderAfter;
+						if (this.cellHeight > 0) {
+								this.cellHeight += this.beforeOffset + borderAfter/2 + bp.getPaddingBottom(false);
+						}
 				}
 		}
 }



-- 
ivan

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

Reply via email to