| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2009, 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 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 506 newInlineStyle->removeStyleFromRulesAndContext(element, context); | 506 newInlineStyle->removeStyleFromRulesAndContext(element, context); |
| 507 } | 507 } |
| 508 | 508 |
| 509 if (!inlineStyle || newInlineStyle->isEmpty()) { | 509 if (!inlineStyle || newInlineStyle->isEmpty()) { |
| 510 if (isStyleSpanOrSpanWithOnlyStyleAttribute(element) || isEmptyFontT
ag(element, AllowNonEmptyStyleAttribute)) { | 510 if (isStyleSpanOrSpanWithOnlyStyleAttribute(element) || isEmptyFontT
ag(element, AllowNonEmptyStyleAttribute)) { |
| 511 insertedNodes.willRemoveNodePreservingChildren(*element); | 511 insertedNodes.willRemoveNodePreservingChildren(*element); |
| 512 removeNodePreservingChildren(element); | 512 removeNodePreservingChildren(element); |
| 513 continue; | 513 continue; |
| 514 } | 514 } |
| 515 removeNodeAttribute(element, styleAttr); | 515 removeNodeAttribute(element, styleAttr); |
| 516 } else if (newInlineStyle->style()->propertyCount() != inlineStyle->prop
ertyCount()) | 516 } else if (newInlineStyle->style()->propertyCount() != inlineStyle->prop
ertyCount()) { |
| 517 setNodeAttribute(element, styleAttr, newInlineStyle->style()->asText
()); | 517 setNodeAttribute(element, styleAttr, AtomicString(newInlineStyle->st
yle()->asText())); |
| 518 } |
| 518 | 519 |
| 519 // FIXME: Tolerate differences in id, class, and style attributes. | 520 // FIXME: Tolerate differences in id, class, and style attributes. |
| 520 if (isNonTableCellHTMLBlockElement(element) && areIdenticalElements(elem
ent, element->parentNode()) | 521 if (isNonTableCellHTMLBlockElement(element) && areIdenticalElements(elem
ent, element->parentNode()) |
| 521 && VisiblePosition(firstPositionInNode(element->parentNode())) == Vi
siblePosition(firstPositionInNode(element)) | 522 && VisiblePosition(firstPositionInNode(element->parentNode())) == Vi
siblePosition(firstPositionInNode(element)) |
| 522 && VisiblePosition(lastPositionInNode(element->parentNode())) == Vis
iblePosition(lastPositionInNode(element))) { | 523 && VisiblePosition(lastPositionInNode(element->parentNode())) == Vis
iblePosition(lastPositionInNode(element))) { |
| 523 insertedNodes.willRemoveNodePreservingChildren(*element); | 524 insertedNodes.willRemoveNodePreservingChildren(*element); |
| 524 removeNodePreservingChildren(element); | 525 removeNodePreservingChildren(element); |
| 525 continue; | 526 continue; |
| 526 } | 527 } |
| 527 | 528 |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 781 // Remove block properties in the span's style. This prevents properties tha
t probably have no effect | 782 // Remove block properties in the span's style. This prevents properties tha
t probably have no effect |
| 782 // currently from affecting blocks later if the style is cloned for a new bl
ock element during a future | 783 // currently from affecting blocks later if the style is cloned for a new bl
ock element during a future |
| 783 // editing operation. | 784 // editing operation. |
| 784 // FIXME: They *can* have an effect currently if blocks beneath the style sp
an aren't individually marked | 785 // FIXME: They *can* have an effect currently if blocks beneath the style sp
an aren't individually marked |
| 785 // with block styles by the editing engine used to style them. WebKit doesn
't do this, but others might. | 786 // with block styles by the editing engine used to style them. WebKit doesn
't do this, but others might. |
| 786 style->removeBlockProperties(); | 787 style->removeBlockProperties(); |
| 787 | 788 |
| 788 if (style->isEmpty() || !wrappingStyleSpan->firstChild()) { | 789 if (style->isEmpty() || !wrappingStyleSpan->firstChild()) { |
| 789 insertedNodes.willRemoveNodePreservingChildren(*wrappingStyleSpan); | 790 insertedNodes.willRemoveNodePreservingChildren(*wrappingStyleSpan); |
| 790 removeNodePreservingChildren(wrappingStyleSpan); | 791 removeNodePreservingChildren(wrappingStyleSpan); |
| 791 } else | 792 } else { |
| 792 setNodeAttribute(wrappingStyleSpan, styleAttr, style->style()->asText())
; | 793 setNodeAttribute(wrappingStyleSpan, styleAttr, AtomicString(style->style
()->asText())); |
| 794 } |
| 793 } | 795 } |
| 794 | 796 |
| 795 void ReplaceSelectionCommand::mergeEndIfNeeded() | 797 void ReplaceSelectionCommand::mergeEndIfNeeded() |
| 796 { | 798 { |
| 797 if (!m_shouldMergeEnd) | 799 if (!m_shouldMergeEnd) |
| 798 return; | 800 return; |
| 799 | 801 |
| 800 VisiblePosition startOfInsertedContent(positionAtStartOfInsertedContent()); | 802 VisiblePosition startOfInsertedContent(positionAtStartOfInsertedContent()); |
| 801 VisiblePosition endOfInsertedContent(positionAtEndOfInsertedContent()); | 803 VisiblePosition endOfInsertedContent(positionAtEndOfInsertedContent()); |
| 802 | 804 |
| (...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1492 removeNodeAndPruneAncestors(nodeAfterInsertionPos.get()); | 1494 removeNodeAndPruneAncestors(nodeAfterInsertionPos.get()); |
| 1493 | 1495 |
| 1494 VisibleSelection selectionAfterReplace(m_selectReplacement ? start : end, en
d); | 1496 VisibleSelection selectionAfterReplace(m_selectReplacement ? start : end, en
d); |
| 1495 | 1497 |
| 1496 setEndingSelection(selectionAfterReplace); | 1498 setEndingSelection(selectionAfterReplace); |
| 1497 | 1499 |
| 1498 return true; | 1500 return true; |
| 1499 } | 1501 } |
| 1500 | 1502 |
| 1501 } // namespace WebCore | 1503 } // namespace WebCore |
| OLD | NEW |