[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.1/kdelibs/khtml/css
From: Harri Porten <porten () kde ! org>
Date: 2008-10-19 15:29:55
Message-ID: 1224430195.795264.14142.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 873497 by porten:
Merged revision 873496:
Fixing width, height and padding unit and values for visible
as well as invisible elements. Fixes some jquery test suite failures.
Will commit tests to css/computed.html shortly.
M +29 -13 css_renderstyledeclarationimpl.cpp
--- branches/KDE/4.1/kdelibs/khtml/css/css_renderstyledeclarationimpl.cpp #873496:873497
@@ -137,6 +137,16 @@
}
}
+static CSSValueImpl *valueForLength2(const Length &length)
+{
+ if (length.isPercent()) {
+ return new CSSPrimitiveValueImpl(length.value(), CSSPrimitiveValue::CSS_PERCENTAGE);
+ }
+ else {
+ return new CSSPrimitiveValueImpl(length.value(), CSSPrimitiveValue::CSS_PX);
+ }
+}
+
static CSSValueImpl *valueForBorderStyle(EBorderStyle style)
{
switch (style) {
@@ -702,8 +712,9 @@
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
}
case CSS_PROP_HEIGHT:
- RETURN_NULL_ON_NULL(renderer);
- return new CSSPrimitiveValueImpl(renderer->contentHeight(), CSSPrimitiveValue::CSS_PX);
+ if (renderer)
+ return new CSSPrimitiveValueImpl(renderer->contentHeight(), CSSPrimitiveValue::CSS_PX);
+ return valueForLength2(style->height());
case CSS_PROP_LEFT:
RETURN_NULL_ON_NULL(renderer);
return getPositionOffsetValue(renderer, CSS_PROP_LEFT);
@@ -868,17 +879,21 @@
return 0;
}
case CSS_PROP_PADDING_TOP:
- RETURN_NULL_ON_NULL(renderer);
- return valueForLength(style->paddingTop(), renderer->contentHeight());
+ if (renderer)
+ return new CSSPrimitiveValueImpl(renderer->paddingTop(), CSSPrimitiveValue::CSS_PX);
+ return valueForLength2(style->paddingTop());
case CSS_PROP_PADDING_RIGHT:
- RETURN_NULL_ON_NULL(renderer);
- return valueForLength(style->paddingRight(), renderer->contentWidth());
+ if (renderer)
+ return new CSSPrimitiveValueImpl(renderer->paddingRight(), CSSPrimitiveValue::CSS_PX);
+ return valueForLength2(style->paddingRight());
case CSS_PROP_PADDING_BOTTOM:
- RETURN_NULL_ON_NULL(renderer);
- return valueForLength(style->paddingBottom(), renderer->contentHeight());
+ if (renderer)
+ return new CSSPrimitiveValueImpl(renderer->paddingBottom(), CSSPrimitiveValue::CSS_PX);
+ return valueForLength2(style->paddingBottom());
case CSS_PROP_PADDING_LEFT:
- RETURN_NULL_ON_NULL(renderer);
- return valueForLength(style->paddingLeft(), renderer->contentWidth());
+ if (renderer)
+ return new CSSPrimitiveValueImpl(renderer->paddingLeft(), CSSPrimitiveValue::CSS_PX);
+ return valueForLength2(style->paddingLeft());
case CSS_PROP_PAGE_BREAK_AFTER:
switch (style->pageBreakAfter()) {
case PBAUTO:
@@ -1064,9 +1079,10 @@
case CSS_PROP_WIDOWS:
return new CSSPrimitiveValueImpl(style->widows(), CSSPrimitiveValue::CSS_NUMBER);
case CSS_PROP_WIDTH:
- RETURN_NULL_ON_NULL(renderer);
- return new CSSPrimitiveValueImpl( renderer->contentWidth(),
- CSSPrimitiveValue::CSS_PX );
+ if (renderer)
+ return new CSSPrimitiveValueImpl(renderer->contentWidth(),
+ CSSPrimitiveValue::CSS_PX);
+ return valueForLength2(style->width());
case CSS_PROP_WORD_SPACING:
return new CSSPrimitiveValueImpl(style->wordSpacing(), CSSPrimitiveValue::CSS_PX);
case CSS_PROP_Z_INDEX:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic