| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2005, 2006, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 2008, 2009 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 } | 212 } |
| 213 | 213 |
| 214 int fontStyle = getIdentifierValue(style, CSSPropertyFontStyle); | 214 int fontStyle = getIdentifierValue(style, CSSPropertyFontStyle); |
| 215 if (fontStyle == CSSValueItalic || fontStyle == CSSValueOblique) { | 215 if (fontStyle == CSSValueItalic || fontStyle == CSSValueOblique) { |
| 216 style->removeProperty(CSSPropertyFontStyle); | 216 style->removeProperty(CSSPropertyFontStyle); |
| 217 m_applyItalic = true; | 217 m_applyItalic = true; |
| 218 } | 218 } |
| 219 | 219 |
| 220 // Assuming reconcileTextDecorationProperties has been called, there should
not be -webkit-text-decorations-in-effect | 220 // Assuming reconcileTextDecorationProperties has been called, there should
not be -webkit-text-decorations-in-effect |
| 221 // Furthermore, text-decoration: none has been trimmed so that text-decorati
on property is always a CSSValueList. | 221 // Furthermore, text-decoration: none has been trimmed so that text-decorati
on property is always a CSSValueList. |
| 222 if (RefPtr<CSSValue> textDecoration = style->getPropertyCSSValue(CSSProperty
TextDecoration)) { | 222 RefPtr<CSSValue> textDecoration = style->getPropertyCSSValue(CSSPropertyText
Decoration); |
| 223 ASSERT(textDecoration->isValueList()); | 223 if (textDecoration && textDecoration->isValueList()) { |
| 224 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, underline, (CSSPrimitiveV
alue::createIdentifier(CSSValueUnderline))); | 224 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, underline, (CSSPrimitiveV
alue::createIdentifier(CSSValueUnderline))); |
| 225 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, lineThrough, (CSSPrimitiv
eValue::createIdentifier(CSSValueLineThrough))); | 225 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, lineThrough, (CSSPrimitiv
eValue::createIdentifier(CSSValueLineThrough))); |
| 226 | 226 |
| 227 RefPtr<CSSValueList> newTextDecoration = static_cast<CSSValueList*>(text
Decoration.get())->copy(); | 227 RefPtr<CSSValueList> newTextDecoration = static_cast<CSSValueList*>(text
Decoration.get())->copy(); |
| 228 if (newTextDecoration->removeAll(underline.get())) | 228 if (newTextDecoration->removeAll(underline.get())) |
| 229 m_applyUnderline = true; | 229 m_applyUnderline = true; |
| 230 if (newTextDecoration->removeAll(lineThrough.get())) | 230 if (newTextDecoration->removeAll(lineThrough.get())) |
| 231 m_applyLineThrough = true; | 231 m_applyLineThrough = true; |
| 232 | 232 |
| 233 // If trimTextDecorations, delete underline and line-through | 233 // If trimTextDecorations, delete underline and line-through |
| (...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1380 // Avoid overriding existing styles of node | 1380 // Avoid overriding existing styles of node |
| 1381 if (existingInlineStyle) { | 1381 if (existingInlineStyle) { |
| 1382 newInlineStyle = existingInlineStyle->copy(); | 1382 newInlineStyle = existingInlineStyle->copy(); |
| 1383 CSSMutableStyleDeclaration::const_iterator end = style->end(); | 1383 CSSMutableStyleDeclaration::const_iterator end = style->end(); |
| 1384 for (CSSMutableStyleDeclaration::const_iterator it = style->begin();
it != end; ++it) { | 1384 for (CSSMutableStyleDeclaration::const_iterator it = style->begin();
it != end; ++it) { |
| 1385 ExceptionCode ec; | 1385 ExceptionCode ec; |
| 1386 if (!existingInlineStyle->getPropertyCSSValue(it->id())) | 1386 if (!existingInlineStyle->getPropertyCSSValue(it->id())) |
| 1387 newInlineStyle->setProperty(it->id(), it->value()->cssText()
, it->isImportant(), ec); | 1387 newInlineStyle->setProperty(it->id(), it->value()->cssText()
, it->isImportant(), ec); |
| 1388 | 1388 |
| 1389 // text-decorations adds up | 1389 // text-decorations adds up |
| 1390 if (it->id() == CSSPropertyTextDecoration) { | 1390 if (it->id() == CSSPropertyTextDecoration && it->value()->isValu
eList()) { |
| 1391 ASSERT(it->value()->isValueList()); | |
| 1392 RefPtr<CSSValue> textDecoration = newInlineStyle->getPropert
yCSSValue(CSSPropertyTextDecoration); | 1391 RefPtr<CSSValue> textDecoration = newInlineStyle->getPropert
yCSSValue(CSSPropertyTextDecoration); |
| 1393 if (textDecoration) { | 1392 if (textDecoration && textDecoration->isValueList()) { |
| 1394 ASSERT(textDecoration->isValueList()); | |
| 1395 CSSValueList* textDecorationOfInlineStyle = static_cast<
CSSValueList*>(textDecoration.get()); | 1393 CSSValueList* textDecorationOfInlineStyle = static_cast<
CSSValueList*>(textDecoration.get()); |
| 1396 CSSValueList* textDecorationOfStyleApplied = static_cast
<CSSValueList*>(it->value()); | 1394 CSSValueList* textDecorationOfStyleApplied = static_cast
<CSSValueList*>(it->value()); |
| 1397 | 1395 |
| 1398 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, underline
, (CSSPrimitiveValue::createIdentifier(CSSValueUnderline))); | 1396 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, underline
, (CSSPrimitiveValue::createIdentifier(CSSValueUnderline))); |
| 1399 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, lineThrou
gh, (CSSPrimitiveValue::createIdentifier(CSSValueLineThrough))); | 1397 DEFINE_STATIC_LOCAL(RefPtr<CSSPrimitiveValue>, lineThrou
gh, (CSSPrimitiveValue::createIdentifier(CSSValueLineThrough))); |
| 1400 | 1398 |
| 1401 if (textDecorationOfStyleApplied->hasValue(underline.get
()) && !textDecorationOfInlineStyle->hasValue(underline.get())) | 1399 if (textDecorationOfStyleApplied->hasValue(underline.get
()) && !textDecorationOfInlineStyle->hasValue(underline.get())) |
| 1402 textDecorationOfInlineStyle->append(underline.get())
; | 1400 textDecorationOfInlineStyle->append(underline.get())
; |
| 1403 | 1401 |
| 1404 if (textDecorationOfStyleApplied->hasValue(lineThrough.g
et()) && !textDecorationOfInlineStyle->hasValue(lineThrough.get())) | 1402 if (textDecorationOfStyleApplied->hasValue(lineThrough.g
et()) && !textDecorationOfInlineStyle->hasValue(lineThrough.get())) |
| (...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1880 } | 1878 } |
| 1881 else { | 1879 else { |
| 1882 child = child->nextSibling(); | 1880 child = child->nextSibling(); |
| 1883 } | 1881 } |
| 1884 } | 1882 } |
| 1885 | 1883 |
| 1886 updateStartEnd(newStart, newEnd); | 1884 updateStartEnd(newStart, newEnd); |
| 1887 } | 1885 } |
| 1888 | 1886 |
| 1889 } | 1887 } |
| OLD | NEW |