OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2008 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 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 document().updateLayoutIgnorePendingStylesheets(); | 169 document().updateLayoutIgnorePendingStylesheets(); |
170 visibleStartOfParagraph = VisiblePosition(visibleStartOfParagraph.deepEq
uivalent()); | 170 visibleStartOfParagraph = VisiblePosition(visibleStartOfParagraph.deepEq
uivalent()); |
171 visibleEndOfParagraph = VisiblePosition(visibleEndOfParagraph.deepEquiva
lent()); | 171 visibleEndOfParagraph = VisiblePosition(visibleEndOfParagraph.deepEquiva
lent()); |
172 if (visibleStartOfParagraph.isNotNull() && !isStartOfParagraph(visibleSt
artOfParagraph)) | 172 if (visibleStartOfParagraph.isNotNull() && !isStartOfParagraph(visibleSt
artOfParagraph)) |
173 insertNodeAt(createBreakElement(document()), visibleStartOfParagraph
.deepEquivalent()); | 173 insertNodeAt(createBreakElement(document()), visibleStartOfParagraph
.deepEquivalent()); |
174 if (visibleEndOfParagraph.isNotNull() && !isEndOfParagraph(visibleEndOfP
aragraph)) | 174 if (visibleEndOfParagraph.isNotNull() && !isEndOfParagraph(visibleEndOfP
aragraph)) |
175 insertNodeAt(createBreakElement(document()), visibleEndOfParagraph.d
eepEquivalent()); | 175 insertNodeAt(createBreakElement(document()), visibleEndOfParagraph.d
eepEquivalent()); |
176 | 176 |
177 return; | 177 return; |
178 } | 178 } |
179 Node* enclosingBlockFlow = enclosingBlock(visibleStartOfParagraph.deepEquiva
lent().deprecatedNode()); | |
180 RefPtrWillBeRawPtr<Node> splitBlockquoteNode = enclosingNode; | 179 RefPtrWillBeRawPtr<Node> splitBlockquoteNode = enclosingNode; |
181 if (enclosingBlockFlow != enclosingNode) | 180 if (Node* enclosingBlockFlow = enclosingBlock(visibleStartOfParagraph.deepEq
uivalent().deprecatedNode())) { |
182 splitBlockquoteNode = splitTreeToNode(enclosingBlockFlow, enclosingNode,
true); | 181 if (enclosingBlockFlow != enclosingNode) { |
183 else { | 182 splitBlockquoteNode = splitTreeToNode(enclosingBlockFlow, enclosingN
ode, true); |
184 // We split the blockquote at where we start outdenting. | 183 } else { |
185 Node* highestInlineNode = highestEnclosingNodeOfType(visibleStartOfParag
raph.deepEquivalent(), isInline, CannotCrossEditingBoundary, enclosingBlockFlow)
; | 184 // We split the blockquote at where we start outdenting. |
186 splitElement(toElement(enclosingNode), (highestInlineNode) ? highestInli
neNode : visibleStartOfParagraph.deepEquivalent().deprecatedNode()); | 185 Node* highestInlineNode = highestEnclosingNodeOfType(visibleStartOfP
aragraph.deepEquivalent(), isInline, CannotCrossEditingBoundary, enclosingBlockF
low); |
| 186 splitElement(toElement(enclosingNode), (highestInlineNode) ? highest
InlineNode : visibleStartOfParagraph.deepEquivalent().deprecatedNode()); |
| 187 } |
187 } | 188 } |
188 RefPtrWillBeRawPtr<Node> placeholder = createBreakElement(document()); | 189 RefPtrWillBeRawPtr<Node> placeholder = createBreakElement(document()); |
189 insertNodeBefore(placeholder, splitBlockquoteNode); | 190 insertNodeBefore(placeholder, splitBlockquoteNode); |
190 moveParagraph(startOfParagraph(visibleStartOfParagraph), endOfParagraph(visi
bleEndOfParagraph), VisiblePosition(positionBeforeNode(placeholder.get())), true
); | 191 moveParagraph(startOfParagraph(visibleStartOfParagraph), endOfParagraph(visi
bleEndOfParagraph), VisiblePosition(positionBeforeNode(placeholder.get())), true
); |
191 } | 192 } |
192 | 193 |
193 // FIXME: We should merge this function with ApplyBlockElementCommand::formatSel
ection | 194 // FIXME: We should merge this function with ApplyBlockElementCommand::formatSel
ection |
194 void IndentOutdentCommand::outdentRegion(const VisiblePosition& startOfSelection
, const VisiblePosition& endOfSelection) | 195 void IndentOutdentCommand::outdentRegion(const VisiblePosition& startOfSelection
, const VisiblePosition& endOfSelection) |
195 { | 196 { |
196 VisiblePosition endOfCurrentParagraph = endOfParagraph(startOfSelection); | 197 VisiblePosition endOfCurrentParagraph = endOfParagraph(startOfSelection); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 | 238 |
238 void IndentOutdentCommand::formatRange(const Position& start, const Position& en
d, const Position&, RefPtrWillBeRawPtr<Element>& blockquoteForNextIndent) | 239 void IndentOutdentCommand::formatRange(const Position& start, const Position& en
d, const Position&, RefPtrWillBeRawPtr<Element>& blockquoteForNextIndent) |
239 { | 240 { |
240 if (tryIndentingAsListItem(start, end)) | 241 if (tryIndentingAsListItem(start, end)) |
241 blockquoteForNextIndent = nullptr; | 242 blockquoteForNextIndent = nullptr; |
242 else | 243 else |
243 indentIntoBlockquote(start, end, blockquoteForNextIndent); | 244 indentIntoBlockquote(start, end, blockquoteForNextIndent); |
244 } | 245 } |
245 | 246 |
246 } | 247 } |
OLD | NEW |