OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
3 * Portions Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved. | 3 * Portions Copyright (c) 2011 Motorola Mobility, 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 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 } | 215 } |
216 | 216 |
217 // TODO(yosin) We should move |leftPositionOf()| to "VisibleUnits.cpp". | 217 // TODO(yosin) We should move |leftPositionOf()| to "VisibleUnits.cpp". |
218 VisiblePosition leftPositionOf(const VisiblePosition& visiblePosition) | 218 VisiblePosition leftPositionOf(const VisiblePosition& visiblePosition) |
219 { | 219 { |
220 const Position pos = leftVisuallyDistinctCandidate(visiblePosition); | 220 const Position pos = leftVisuallyDistinctCandidate(visiblePosition); |
221 // TODO(yosin) Why can't we move left from the last position in a tree? | 221 // TODO(yosin) Why can't we move left from the last position in a tree? |
222 if (pos.atStartOfTree() || pos.atEndOfTree()) | 222 if (pos.atStartOfTree() || pos.atEndOfTree()) |
223 return VisiblePosition(); | 223 return VisiblePosition(); |
224 | 224 |
225 VisiblePosition left = VisiblePosition(pos); | 225 VisiblePosition left = createVisiblePosition(pos); |
226 ASSERT(left.deepEquivalent() != visiblePosition.deepEquivalent()); | 226 ASSERT(left.deepEquivalent() != visiblePosition.deepEquivalent()); |
227 | 227 |
228 return directionOfEnclosingBlock(left.deepEquivalent()) == LTR ? honorEditin
gBoundaryAtOrBefore(left, visiblePosition.deepEquivalent()) : honorEditingBounda
ryAtOrAfter(left, visiblePosition.deepEquivalent()); | 228 return directionOfEnclosingBlock(left.deepEquivalent()) == LTR ? honorEditin
gBoundaryAtOrBefore(left, visiblePosition.deepEquivalent()) : honorEditingBounda
ryAtOrAfter(left, visiblePosition.deepEquivalent()); |
229 } | 229 } |
230 | 230 |
231 // TODO(yosin) We should move |rightVisuallyDistinctCandidate()| with | 231 // TODO(yosin) We should move |rightVisuallyDistinctCandidate()| with |
232 // |rightPositionOf()| to "VisibleUnits.cpp". | 232 // |rightPositionOf()| to "VisibleUnits.cpp". |
233 static Position rightVisuallyDistinctCandidate(const VisiblePosition& visiblePos
ition) | 233 static Position rightVisuallyDistinctCandidate(const VisiblePosition& visiblePos
ition) |
234 { | 234 { |
235 const Position deepPosition = visiblePosition.deepEquivalent(); | 235 const Position deepPosition = visiblePosition.deepEquivalent(); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 } | 382 } |
383 | 383 |
384 // TODO(yosin) We should move |rightPositionOf()| to "VisibleUnits.cpp". | 384 // TODO(yosin) We should move |rightPositionOf()| to "VisibleUnits.cpp". |
385 VisiblePosition rightPositionOf(const VisiblePosition& visiblePosition) | 385 VisiblePosition rightPositionOf(const VisiblePosition& visiblePosition) |
386 { | 386 { |
387 const Position pos = rightVisuallyDistinctCandidate(visiblePosition); | 387 const Position pos = rightVisuallyDistinctCandidate(visiblePosition); |
388 // TODO(yosin) Why can't we move left from the last position in a tree? | 388 // TODO(yosin) Why can't we move left from the last position in a tree? |
389 if (pos.atStartOfTree() || pos.atEndOfTree()) | 389 if (pos.atStartOfTree() || pos.atEndOfTree()) |
390 return VisiblePosition(); | 390 return VisiblePosition(); |
391 | 391 |
392 VisiblePosition right = VisiblePosition(pos); | 392 VisiblePosition right = createVisiblePosition(pos); |
393 ASSERT(right.deepEquivalent() != visiblePosition.deepEquivalent()); | 393 ASSERT(right.deepEquivalent() != visiblePosition.deepEquivalent()); |
394 | 394 |
395 return directionOfEnclosingBlock(right.deepEquivalent()) == LTR ? honorEditi
ngBoundaryAtOrAfter(right, visiblePosition.deepEquivalent()) : honorEditingBound
aryAtOrBefore(right, visiblePosition.deepEquivalent()); | 395 return directionOfEnclosingBlock(right.deepEquivalent()) == LTR ? honorEditi
ngBoundaryAtOrAfter(right, visiblePosition.deepEquivalent()) : honorEditingBound
aryAtOrBefore(right, visiblePosition.deepEquivalent()); |
396 } | 396 } |
397 | 397 |
398 template <typename Strategy> | 398 template <typename Strategy> |
399 PositionWithAffinityTemplate<Strategy> honorEditingBoundaryAtOrBeforeAlgorithm(c
onst PositionWithAffinityTemplate<Strategy>& pos, const PositionAlgorithm<Strate
gy>& anchor) | 399 PositionWithAffinityTemplate<Strategy> honorEditingBoundaryAtOrBeforeAlgorithm(c
onst PositionWithAffinityTemplate<Strategy>& pos, const PositionAlgorithm<Strate
gy>& anchor) |
400 { | 400 { |
401 if (pos.isNull()) | 401 if (pos.isNull()) |
402 return pos; | 402 return pos; |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 else | 544 else |
545 fprintf(stderr, "Cannot showTree for (nil) VisiblePosition.\n"); | 545 fprintf(stderr, "Cannot showTree for (nil) VisiblePosition.\n"); |
546 } | 546 } |
547 | 547 |
548 void showTree(const blink::VisiblePosition& vpos) | 548 void showTree(const blink::VisiblePosition& vpos) |
549 { | 549 { |
550 vpos.showTreeForThis(); | 550 vpos.showTreeForThis(); |
551 } | 551 } |
552 | 552 |
553 #endif | 553 #endif |
OLD | NEW |