| 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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 static bool offsetIsBeforeLastNodeOffset(int offset, Node* anchorNode) | 115 static bool offsetIsBeforeLastNodeOffset(int offset, Node* anchorNode) |
| 116 { | 116 { |
| 117 if (anchorNode->offsetInCharacters()) | 117 if (anchorNode->offsetInCharacters()) |
| 118 return offset < anchorNode->maxCharacterOffset(); | 118 return offset < anchorNode->maxCharacterOffset(); |
| 119 int currentOffset = 0; | 119 int currentOffset = 0; |
| 120 for (Node* node = NodeTraversal::firstChild(*anchorNode); node && currentOff
set < offset; node = NodeTraversal::nextSibling(*node)) | 120 for (Node* node = NodeTraversal::firstChild(*anchorNode); node && currentOff
set < offset; node = NodeTraversal::nextSibling(*node)) |
| 121 currentOffset++; | 121 currentOffset++; |
| 122 return offset < currentOffset; | 122 return offset < currentOffset; |
| 123 } | 123 } |
| 124 | 124 |
| 125 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, EditAction editingAction, EPropertyLevel propertyLevel) | 125 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, InputEvent::InputType inputType, EPropertyLevel propertyLevel) |
| 126 : CompositeEditCommand(document) | 126 : CompositeEditCommand(document) |
| 127 , m_style(style->copy()) | 127 , m_style(style->copy()) |
| 128 , m_editingAction(editingAction) | 128 , m_inputType(inputType) |
| 129 , m_propertyLevel(propertyLevel) | 129 , m_propertyLevel(propertyLevel) |
| 130 , m_start(mostForwardCaretPosition(endingSelection().start())) | 130 , m_start(mostForwardCaretPosition(endingSelection().start())) |
| 131 , m_end(mostBackwardCaretPosition(endingSelection().end())) | 131 , m_end(mostBackwardCaretPosition(endingSelection().end())) |
| 132 , m_useEndingSelection(true) | 132 , m_useEndingSelection(true) |
| 133 , m_styledInlineElement(nullptr) | 133 , m_styledInlineElement(nullptr) |
| 134 , m_removeOnly(false) | 134 , m_removeOnly(false) |
| 135 , m_isInlineElementToRemoveFunction(0) | 135 , m_isInlineElementToRemoveFunction(0) |
| 136 { | 136 { |
| 137 } | 137 } |
| 138 | 138 |
| 139 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, const Position& start, const Position& end) | 139 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, const Position& start, const Position& end) |
| 140 : CompositeEditCommand(document) | 140 : CompositeEditCommand(document) |
| 141 , m_style(style->copy()) | 141 , m_style(style->copy()) |
| 142 , m_editingAction(EditActionChangeAttributes) | 142 , m_inputType(InputEvent::InputType::ChangeAttributes) |
| 143 , m_propertyLevel(PropertyDefault) | 143 , m_propertyLevel(PropertyDefault) |
| 144 , m_start(start) | 144 , m_start(start) |
| 145 , m_end(end) | 145 , m_end(end) |
| 146 , m_useEndingSelection(false) | 146 , m_useEndingSelection(false) |
| 147 , m_styledInlineElement(nullptr) | 147 , m_styledInlineElement(nullptr) |
| 148 , m_removeOnly(false) | 148 , m_removeOnly(false) |
| 149 , m_isInlineElementToRemoveFunction(0) | 149 , m_isInlineElementToRemoveFunction(0) |
| 150 { | 150 { |
| 151 } | 151 } |
| 152 | 152 |
| 153 ApplyStyleCommand::ApplyStyleCommand(Element* element, bool removeOnly) | 153 ApplyStyleCommand::ApplyStyleCommand(Element* element, bool removeOnly) |
| 154 : CompositeEditCommand(element->document()) | 154 : CompositeEditCommand(element->document()) |
| 155 , m_style(EditingStyle::create()) | 155 , m_style(EditingStyle::create()) |
| 156 , m_editingAction(EditActionChangeAttributes) | 156 , m_inputType(InputEvent::InputType::ChangeAttributes) |
| 157 , m_propertyLevel(PropertyDefault) | 157 , m_propertyLevel(PropertyDefault) |
| 158 , m_start(mostForwardCaretPosition(endingSelection().start())) | 158 , m_start(mostForwardCaretPosition(endingSelection().start())) |
| 159 , m_end(mostBackwardCaretPosition(endingSelection().end())) | 159 , m_end(mostBackwardCaretPosition(endingSelection().end())) |
| 160 , m_useEndingSelection(true) | 160 , m_useEndingSelection(true) |
| 161 , m_styledInlineElement(element) | 161 , m_styledInlineElement(element) |
| 162 , m_removeOnly(removeOnly) | 162 , m_removeOnly(removeOnly) |
| 163 , m_isInlineElementToRemoveFunction(0) | 163 , m_isInlineElementToRemoveFunction(0) |
| 164 { | 164 { |
| 165 } | 165 } |
| 166 | 166 |
| 167 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, IsInlineElementToRemoveFunction isInlineElementToRemoveFunction, EditAction
editingAction) | 167 ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
le, IsInlineElementToRemoveFunction isInlineElementToRemoveFunction, InputEvent:
:InputType inputType) |
| 168 : CompositeEditCommand(document) | 168 : CompositeEditCommand(document) |
| 169 , m_style(style->copy()) | 169 , m_style(style->copy()) |
| 170 , m_editingAction(editingAction) | 170 , m_inputType(inputType) |
| 171 , m_propertyLevel(PropertyDefault) | 171 , m_propertyLevel(PropertyDefault) |
| 172 , m_start(mostForwardCaretPosition(endingSelection().start())) | 172 , m_start(mostForwardCaretPosition(endingSelection().start())) |
| 173 , m_end(mostBackwardCaretPosition(endingSelection().end())) | 173 , m_end(mostBackwardCaretPosition(endingSelection().end())) |
| 174 , m_useEndingSelection(true) | 174 , m_useEndingSelection(true) |
| 175 , m_styledInlineElement(nullptr) | 175 , m_styledInlineElement(nullptr) |
| 176 , m_removeOnly(true) | 176 , m_removeOnly(true) |
| 177 , m_isInlineElementToRemoveFunction(isInlineElementToRemoveFunction) | 177 , m_isInlineElementToRemoveFunction(isInlineElementToRemoveFunction) |
| 178 { | 178 { |
| 179 } | 179 } |
| 180 | 180 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 } | 228 } |
| 229 break; | 229 break; |
| 230 } | 230 } |
| 231 case ForceBlockProperties: | 231 case ForceBlockProperties: |
| 232 // Force all properties to be applied as block styles. | 232 // Force all properties to be applied as block styles. |
| 233 applyBlockStyle(m_style.get(), editingState); | 233 applyBlockStyle(m_style.get(), editingState); |
| 234 break; | 234 break; |
| 235 } | 235 } |
| 236 } | 236 } |
| 237 | 237 |
| 238 EditAction ApplyStyleCommand::editingAction() const | 238 InputEvent::InputType ApplyStyleCommand::inputType() const |
| 239 { | 239 { |
| 240 return m_editingAction; | 240 return m_inputType; |
| 241 } | 241 } |
| 242 | 242 |
| 243 void ApplyStyleCommand::applyBlockStyle(EditingStyle *style, EditingState* editi
ngState) | 243 void ApplyStyleCommand::applyBlockStyle(EditingStyle *style, EditingState* editi
ngState) |
| 244 { | 244 { |
| 245 // update document layout once before removing styles | 245 // update document layout once before removing styles |
| 246 // so that we avoid the expense of updating before each and every call | 246 // so that we avoid the expense of updating before each and every call |
| 247 // to check a computed style | 247 // to check a computed style |
| 248 document().updateStyleAndLayoutIgnorePendingStylesheets(); | 248 document().updateStyleAndLayoutIgnorePendingStylesheets(); |
| 249 | 249 |
| 250 // get positions we want to use for applying style | 250 // get positions we want to use for applying style |
| (...skipping 1480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1731 DEFINE_TRACE(ApplyStyleCommand) | 1731 DEFINE_TRACE(ApplyStyleCommand) |
| 1732 { | 1732 { |
| 1733 visitor->trace(m_style); | 1733 visitor->trace(m_style); |
| 1734 visitor->trace(m_start); | 1734 visitor->trace(m_start); |
| 1735 visitor->trace(m_end); | 1735 visitor->trace(m_end); |
| 1736 visitor->trace(m_styledInlineElement); | 1736 visitor->trace(m_styledInlineElement); |
| 1737 CompositeEditCommand::trace(visitor); | 1737 CompositeEditCommand::trace(visitor); |
| 1738 } | 1738 } |
| 1739 | 1739 |
| 1740 } // namespace blink | 1740 } // namespace blink |
| OLD | NEW |