[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/khtml
From: Allan Sandfeld Jensen <kde () carewolf ! com>
Date: 2005-05-01 19:47:21
Message-ID: 20050501194721.03E7C3EF () office ! kde ! org
[Download RAW message or body]
CVS commit by carewolf:
The rest of the mergable acid2 patches.
The rest either; doesn't apply (acid2.txt, acid11.txt),
was already fixed but never copied by Apple (acid.txt),
ridiculous SGML legacy (acid6.txt),
or something I will have to work more on (acid10.txt)
M +11 -1 ChangeLog 1.426
M +16 -8 rendering/render_block.cpp 1.66
M +16 -11 rendering/render_table.cpp 1.280
--- kdelibs/khtml/ChangeLog #1.425:1.426
@@ -1,5 +1,15 @@
2005-05-01 Allan Sandfeld Jensen <kde@carewolf.com>
- * renderer/render_box.{h,cpp}: Respect min/max width/height and box-sizing
+ The mergeable of Daves Acid2 patches.
+
+ * renderer/render_block.cpp:
+ - Make sure that percentages that go to auto don't mess up the self-collapsing \
block check. + - Fix floats to not grow if child floats overhang but the height of \
the outer float is auto. + * renderer/render_box.{h,cpp}:
+ - Add support for min/max-width/height for positioned elements.
+ - Make sure percentage min-height goes to 0 and not auto when the percentage does \
not apply. + * renderer/render_table.cpp:
+ - Make sure empty tables honor CSS-specified height in strict mode.
+ - Fix baseline alignment within table cells to use the bottom of empty blocks.
2005-04-30 Harri Porten <porten@kde.org>
--- kdelibs/khtml/rendering/render_block.cpp #1.65:1.66
@@ -407,8 +407,16 @@ bool RenderBlock::isSelfCollapsingBlock(
return false;
+ bool hasAutoHeight = style()->height().isVariable();
+ if (style()->height().isPercent() && !style()->htmlHacks()) {
+ hasAutoHeight = true;
+ for (RenderBlock* cb = containingBlock(); !cb->isCanvas(); cb = cb->containingBlock()) \
{ + if (cb->style()->height().isFixed() || cb->isTableCell())
+ hasAutoHeight = false;
+ }
+ }
+
// If the height is 0 or auto, then whether or not we are a self-collapsing block depends
// on whether we have content that is all self-collapsing or not.
- if (style()->height().isVariable() ||
- (style()->height().isFixed() && style()->height().value() == 0)) {
+ if (hasAutoHeight || ((style()->height().isFixed() || style()->height().isPercent()) && \
style()->height().value() == 0)) {
// If the block has inline children, see if we generated any line boxes. If we have \
any
// line boxes, then we can't be self-collapsing, since we have content.
@@ -565,5 +573,5 @@ void RenderBlock::layoutBlock(bool relay
}
- if( hasOverhangingFloats() && (isFloating() || isTableCell())) {
+ if( hasOverhangingFloats() && ((isFloating() && style()->height().isVariable()) || \
isTableCell())) { m_height = floatBottom();
m_height += borderBottom() + paddingBottom();
--- kdelibs/khtml/rendering/render_table.cpp #1.279:1.280
@@ -1205,5 +1205,5 @@ void RenderTableSection::calcRowHeight()
{
int b=cell->baselinePosition();
-
+ if (b > cell->borderTop() + cell->paddingTop()) {
if (b>baseline)
baseline=b;
@@ -1214,4 +1214,5 @@ void RenderTableSection::calcRowHeight()
}
}
+ }
//do we have baseline aligned elements?
@@ -1970,12 +1971,16 @@ bool RenderTableCell::absolutePosition(i
short RenderTableCell::baselinePosition( bool ) const
{
- RenderObject *o = firstChild();
+ RenderObject* o = firstChild();
int offset = paddingTop() + borderTop();
- if ( !o ) return offset;
- while ( o->firstChild() ) {
- if ( !o->isInline() )
+ if (!o) return offset + contentHeight();
+ while (o->firstChild()) {
+ if (!o->isInline())
offset += o->paddingTop() + o->borderTop();
o = o->firstChild();
}
+
+ if (!o->isInline())
+ return paddingTop() + borderTop() + contentHeight();
+
offset += o->baselinePosition( true );
return offset;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic