OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008, 2009 Apple Computer, Inc. | 2 * Copyright (C) 2007, 2008, 2009 Apple Computer, Inc. |
3 * Copyright (C) 2010, 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2010, 2011 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 } | 448 } |
449 | 449 |
450 template<typename T> | 450 template<typename T> |
451 static int textAlignResolvingStartAndEnd(T* style) | 451 static int textAlignResolvingStartAndEnd(T* style) |
452 { | 452 { |
453 return textAlignResolvingStartAndEnd(getIdentifierValue(style, CSSPropertyTe
xtAlign), getIdentifierValue(style, CSSPropertyDirection)); | 453 return textAlignResolvingStartAndEnd(getIdentifierValue(style, CSSPropertyTe
xtAlign), getIdentifierValue(style, CSSPropertyDirection)); |
454 } | 454 } |
455 | 455 |
456 void EditingStyle::init(Node* node, PropertiesToInclude propertiesToInclude) | 456 void EditingStyle::init(Node* node, PropertiesToInclude propertiesToInclude) |
457 { | 457 { |
458 if (isTabSpanTextNode(node)) | 458 if (isTabHTMLSpanElementTextNode(node)) |
459 node = tabSpanElement(node)->parentNode(); | 459 node = tabSpanElement(node)->parentNode(); |
460 else if (isTabSpanElement(node)) | 460 else if (isTabHTMLSpanElement(node)) |
461 node = node->parentNode(); | 461 node = node->parentNode(); |
462 | 462 |
463 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleAtPosition = CS
SComputedStyleDeclaration::create(node); | 463 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleAtPosition = CS
SComputedStyleDeclaration::create(node); |
464 m_mutableStyle = propertiesToInclude == AllProperties && computedStyleAtPosi
tion ? computedStyleAtPosition->copyProperties() : editingStyleFromComputedStyle
(computedStyleAtPosition); | 464 m_mutableStyle = propertiesToInclude == AllProperties && computedStyleAtPosi
tion ? computedStyleAtPosition->copyProperties() : editingStyleFromComputedStyle
(computedStyleAtPosition); |
465 | 465 |
466 if (propertiesToInclude == EditingPropertiesInEffect) { | 466 if (propertiesToInclude == EditingPropertiesInEffect) { |
467 if (RefPtrWillBeRawPtr<CSSValue> value = backgroundColorInEffect(node)) | 467 if (RefPtrWillBeRawPtr<CSSValue> value = backgroundColorInEffect(node)) |
468 m_mutableStyle->setProperty(CSSPropertyBackgroundColor, value->cssTe
xt()); | 468 m_mutableStyle->setProperty(CSSPropertyBackgroundColor, value->cssTe
xt()); |
469 if (RefPtrWillBeRawPtr<CSSValue> value = computedStyleAtPosition->getPro
pertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect)) | 469 if (RefPtrWillBeRawPtr<CSSValue> value = computedStyleAtPosition->getPro
pertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect)) |
470 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssTex
t()); | 470 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssTex
t()); |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
739 | 739 |
740 const StylePropertySet* inlineStyle = element->inlineStyle(); | 740 const StylePropertySet* inlineStyle = element->inlineStyle(); |
741 if (!m_mutableStyle || !inlineStyle) | 741 if (!m_mutableStyle || !inlineStyle) |
742 return false; | 742 return false; |
743 | 743 |
744 unsigned propertyCount = m_mutableStyle->propertyCount(); | 744 unsigned propertyCount = m_mutableStyle->propertyCount(); |
745 for (unsigned i = 0; i < propertyCount; ++i) { | 745 for (unsigned i = 0; i < propertyCount; ++i) { |
746 CSSPropertyID propertyID = m_mutableStyle->propertyAt(i).id(); | 746 CSSPropertyID propertyID = m_mutableStyle->propertyAt(i).id(); |
747 | 747 |
748 // We don't override whitespace property of a tab span because that woul
d collapse the tab into a space. | 748 // We don't override whitespace property of a tab span because that woul
d collapse the tab into a space. |
749 if (propertyID == CSSPropertyWhiteSpace && isTabSpanElement(element)) | 749 if (propertyID == CSSPropertyWhiteSpace && isTabHTMLSpanElement(element)
) |
750 continue; | 750 continue; |
751 | 751 |
752 if (propertyID == CSSPropertyWebkitTextDecorationsInEffect && inlineStyl
e->getPropertyCSSValue(textDecorationPropertyForEditing())) { | 752 if (propertyID == CSSPropertyWebkitTextDecorationsInEffect && inlineStyl
e->getPropertyCSSValue(textDecorationPropertyForEditing())) { |
753 if (!conflictingProperties) | 753 if (!conflictingProperties) |
754 return true; | 754 return true; |
755 conflictingProperties->append(CSSPropertyTextDecoration); | 755 conflictingProperties->append(CSSPropertyTextDecoration); |
756 // Because text-decoration expands to text-decoration-line when CSS3 | 756 // Because text-decoration expands to text-decoration-line when CSS3 |
757 // Text Decoration is enabled, we also state it as conflicting. | 757 // Text Decoration is enabled, we also state it as conflicting. |
758 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) | 758 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) |
759 conflictingProperties->append(CSSPropertyTextDecorationLine); | 759 conflictingProperties->append(CSSPropertyTextDecorationLine); |
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1427 | 1427 |
1428 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com
putedStyle(); | 1428 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com
putedStyle(); |
1429 // FIXME: take care of background-color in effect | 1429 // FIXME: take care of background-color in effect |
1430 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI
n(style->style(), computedStyle.get()); | 1430 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI
n(style->style(), computedStyle.get()); |
1431 | 1431 |
1432 reconcileTextDecorationProperties(mutableStyle.get()); | 1432 reconcileTextDecorationProperties(mutableStyle.get()); |
1433 if (!document->frame()->editor().shouldStyleWithCSS()) | 1433 if (!document->frame()->editor().shouldStyleWithCSS()) |
1434 extractTextStyles(document, mutableStyle.get(), computedStyle->fixedPitc
hFontType()); | 1434 extractTextStyles(document, mutableStyle.get(), computedStyle->fixedPitc
hFontType()); |
1435 | 1435 |
1436 // Changing the whitespace style in a tab span would collapse the tab into a
space. | 1436 // Changing the whitespace style in a tab span would collapse the tab into a
space. |
1437 if (isTabSpanTextNode(position.deprecatedNode()) || isTabSpanElement((positi
on.deprecatedNode()))) | 1437 if (isTabHTMLSpanElementTextNode(position.deprecatedNode()) || isTabHTMLSpan
Element((position.deprecatedNode()))) |
1438 mutableStyle->removeProperty(CSSPropertyWhiteSpace); | 1438 mutableStyle->removeProperty(CSSPropertyWhiteSpace); |
1439 | 1439 |
1440 // If unicode-bidi is present in mutableStyle and direction is not, then add
direction to mutableStyle. | 1440 // If unicode-bidi is present in mutableStyle and direction is not, then add
direction to mutableStyle. |
1441 // FIXME: Shouldn't this be done in getPropertiesNotIn? | 1441 // FIXME: Shouldn't this be done in getPropertiesNotIn? |
1442 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty
le()->getPropertyCSSValue(CSSPropertyDirection)) | 1442 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty
le()->getPropertyCSSValue(CSSPropertyDirection)) |
1443 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope
rtyValue(CSSPropertyDirection)); | 1443 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope
rtyValue(CSSPropertyDirection)); |
1444 | 1444 |
1445 // Save the result for later | 1445 // Save the result for later |
1446 m_cssStyle = mutableStyle->asText().stripWhiteSpace(); | 1446 m_cssStyle = mutableStyle->asText().stripWhiteSpace(); |
1447 } | 1447 } |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1676 { | 1676 { |
1677 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { | 1677 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { |
1678 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu
tedStyleDeclaration::create(ancestor); | 1678 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu
tedStyleDeclaration::create(ancestor); |
1679 if (!hasTransparentBackgroundColor(ancestorStyle.get())) | 1679 if (!hasTransparentBackgroundColor(ancestorStyle.get())) |
1680 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor
); | 1680 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor
); |
1681 } | 1681 } |
1682 return nullptr; | 1682 return nullptr; |
1683 } | 1683 } |
1684 | 1684 |
1685 } | 1685 } |
OLD | NEW |