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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 } | 118 } |
119 | 119 |
120 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, EditAction editingAction, EPropertyLevel propertyLevel) | 120 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, EditAction editingAction, EPropertyLevel propertyLevel) |
121 : CompositeEditCommand(document) | 121 : CompositeEditCommand(document) |
122 , m_style(style->copy()) | 122 , m_style(style->copy()) |
123 , m_editingAction(editingAction) | 123 , m_editingAction(editingAction) |
124 , m_propertyLevel(propertyLevel) | 124 , m_propertyLevel(propertyLevel) |
125 , m_start(endingSelection().start().downstream()) | 125 , m_start(endingSelection().start().downstream()) |
126 , m_end(endingSelection().end().upstream()) | 126 , m_end(endingSelection().end().upstream()) |
127 , m_useEndingSelection(true) | 127 , m_useEndingSelection(true) |
128 , m_styledInlineElement(0) | 128 , m_styledInlineElement(nullptr) |
129 , m_removeOnly(false) | 129 , m_removeOnly(false) |
130 , m_isInlineElementToRemoveFunction(0) | 130 , m_isInlineElementToRemoveFunction(0) |
131 { | 131 { |
132 } | 132 } |
133 | 133 |
134 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, const Position& start, const Position& end, EditAction editingAction, EPrope
rtyLevel propertyLevel) | 134 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, const Position& start, const Position& end, EditAction editingAction, EPrope
rtyLevel propertyLevel) |
135 : CompositeEditCommand(document) | 135 : CompositeEditCommand(document) |
136 , m_style(style->copy()) | 136 , m_style(style->copy()) |
137 , m_editingAction(editingAction) | 137 , m_editingAction(editingAction) |
138 , m_propertyLevel(propertyLevel) | 138 , m_propertyLevel(propertyLevel) |
139 , m_start(start) | 139 , m_start(start) |
140 , m_end(end) | 140 , m_end(end) |
141 , m_useEndingSelection(false) | 141 , m_useEndingSelection(false) |
142 , m_styledInlineElement(0) | 142 , m_styledInlineElement(nullptr) |
143 , m_removeOnly(false) | 143 , m_removeOnly(false) |
144 , m_isInlineElementToRemoveFunction(0) | 144 , m_isInlineElementToRemoveFunction(0) |
145 { | 145 { |
146 } | 146 } |
147 | 147 |
148 ApplyStyleCommand::ApplyStyleCommand(PassRefPtr<Element> element, bool removeOnl
y, EditAction editingAction) | 148 ApplyStyleCommand::ApplyStyleCommand(PassRefPtr<Element> element, bool removeOnl
y, EditAction editingAction) |
149 : CompositeEditCommand(element->document()) | 149 : CompositeEditCommand(element->document()) |
150 , m_style(EditingStyle::create()) | 150 , m_style(EditingStyle::create()) |
151 , m_editingAction(editingAction) | 151 , m_editingAction(editingAction) |
152 , m_propertyLevel(PropertyDefault) | 152 , m_propertyLevel(PropertyDefault) |
153 , m_start(endingSelection().start().downstream()) | 153 , m_start(endingSelection().start().downstream()) |
154 , m_end(endingSelection().end().upstream()) | 154 , m_end(endingSelection().end().upstream()) |
155 , m_useEndingSelection(true) | 155 , m_useEndingSelection(true) |
156 , m_styledInlineElement(element) | 156 , m_styledInlineElement(element) |
157 , m_removeOnly(removeOnly) | 157 , m_removeOnly(removeOnly) |
158 , m_isInlineElementToRemoveFunction(0) | 158 , m_isInlineElementToRemoveFunction(0) |
159 { | 159 { |
160 } | 160 } |
161 | 161 |
162 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, IsInlineElementToRemoveFunction isInlineElementToRemoveFunction, EditAction
editingAction) | 162 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, IsInlineElementToRemoveFunction isInlineElementToRemoveFunction, EditAction
editingAction) |
163 : CompositeEditCommand(document) | 163 : CompositeEditCommand(document) |
164 , m_style(style->copy()) | 164 , m_style(style->copy()) |
165 , m_editingAction(editingAction) | 165 , m_editingAction(editingAction) |
166 , m_propertyLevel(PropertyDefault) | 166 , m_propertyLevel(PropertyDefault) |
167 , m_start(endingSelection().start().downstream()) | 167 , m_start(endingSelection().start().downstream()) |
168 , m_end(endingSelection().end().upstream()) | 168 , m_end(endingSelection().end().upstream()) |
169 , m_useEndingSelection(true) | 169 , m_useEndingSelection(true) |
170 , m_styledInlineElement(0) | 170 , m_styledInlineElement(nullptr) |
171 , m_removeOnly(true) | 171 , m_removeOnly(true) |
172 , m_isInlineElementToRemoveFunction(isInlineElementToRemoveFunction) | 172 , m_isInlineElementToRemoveFunction(isInlineElementToRemoveFunction) |
173 { | 173 { |
174 } | 174 } |
175 | 175 |
176 void ApplyStyleCommand::updateStartEnd(const Position& newStart, const Position&
newEnd) | 176 void ApplyStyleCommand::updateStartEnd(const Position& newStart, const Position&
newEnd) |
177 { | 177 { |
178 ASSERT(comparePositions(newEnd, newStart) >= 0); | 178 ASSERT(comparePositions(newEnd, newStart) >= 0); |
179 | 179 |
180 if (!m_useEndingSelection && (newStart != m_start || newEnd != m_end)) | 180 if (!m_useEndingSelection && (newStart != m_start || newEnd != m_end)) |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 for (Node* n = startNode; n && n != enclosingNode; n = n->parentNode()) { | 529 for (Node* n = startNode; n && n != enclosingNode; n = n->parentNode()) { |
530 if (n->isHTMLElement() && getIdentifierValue(CSSComputedStyleDeclaration
::create(n).get(), CSSPropertyUnicodeBidi) == CSSValueEmbed) | 530 if (n->isHTMLElement() && getIdentifierValue(CSSComputedStyleDeclaration
::create(n).get(), CSSPropertyUnicodeBidi) == CSSValueEmbed) |
531 return n; | 531 return n; |
532 } | 532 } |
533 | 533 |
534 return 0; | 534 return 0; |
535 } | 535 } |
536 | 536 |
537 void ApplyStyleCommand::applyInlineStyle(EditingStyle* style) | 537 void ApplyStyleCommand::applyInlineStyle(EditingStyle* style) |
538 { | 538 { |
539 RefPtr<Node> startDummySpanAncestor = 0; | 539 RefPtr<Node> startDummySpanAncestor = nullptr; |
540 RefPtr<Node> endDummySpanAncestor = 0; | 540 RefPtr<Node> endDummySpanAncestor = nullptr; |
541 | 541 |
542 // update document layout once before removing styles | 542 // update document layout once before removing styles |
543 // so that we avoid the expense of updating before each and every call | 543 // so that we avoid the expense of updating before each and every call |
544 // to check a computed style | 544 // to check a computed style |
545 document().updateLayoutIgnorePendingStylesheets(); | 545 document().updateLayoutIgnorePendingStylesheets(); |
546 | 546 |
547 // adjust to the positions we want to use for applying style | 547 // adjust to the positions we want to use for applying style |
548 Position start = startPosition(); | 548 Position start = startPosition(); |
549 Position end = endPosition(); | 549 Position end = endPosition(); |
550 | 550 |
(...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1528 String textToMove = nextText->data(); | 1528 String textToMove = nextText->data(); |
1529 insertTextIntoNode(childText, childText->length(), textToMove); | 1529 insertTextIntoNode(childText, childText->length(), textToMove); |
1530 removeNode(next); | 1530 removeNode(next); |
1531 // don't move child node pointer. it may want to merge with more text no
des. | 1531 // don't move child node pointer. it may want to merge with more text no
des. |
1532 } | 1532 } |
1533 | 1533 |
1534 updateStartEnd(newStart, newEnd); | 1534 updateStartEnd(newStart, newEnd); |
1535 } | 1535 } |
1536 | 1536 |
1537 } | 1537 } |
OLD | NEW |