| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 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 * | 7 * |
| 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 2147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2158 | 2158 |
| 2159 VisiblePosition visiblePos = visiblePositionForIndex(0); | 2159 VisiblePosition visiblePos = visiblePositionForIndex(0); |
| 2160 VisiblePosition prevVisiblePos = visiblePos; | 2160 VisiblePosition prevVisiblePos = visiblePos; |
| 2161 visiblePos = nextLinePosition(visiblePos, 0, HasEditableAXRole); | 2161 visiblePos = nextLinePosition(visiblePos, 0, HasEditableAXRole); |
| 2162 // nextLinePosition moves to the end of the current line when there are | 2162 // nextLinePosition moves to the end of the current line when there are |
| 2163 // no more lines. | 2163 // no more lines. |
| 2164 while (visiblePos.isNotNull() && !inSameLine(prevVisiblePos, visiblePos)) { | 2164 while (visiblePos.isNotNull() && !inSameLine(prevVisiblePos, visiblePos)) { |
| 2165 lineBreaks.append(indexForVisiblePosition(visiblePos)); | 2165 lineBreaks.append(indexForVisiblePosition(visiblePos)); |
| 2166 prevVisiblePos = visiblePos; | 2166 prevVisiblePos = visiblePos; |
| 2167 visiblePos = nextLinePosition(visiblePos, 0, HasEditableAXRole); | 2167 visiblePos = nextLinePosition(visiblePos, 0, HasEditableAXRole); |
| 2168 |
| 2169 // Make sure we always make forward progress. |
| 2170 if (visiblePos.deepEquivalent().compareTo(prevVisiblePos.deepEquivalent(
)) < 0) |
| 2171 break; |
| 2168 } | 2172 } |
| 2169 } | 2173 } |
| 2170 | 2174 |
| 2171 // | 2175 // |
| 2172 // Private. | 2176 // Private. |
| 2173 // | 2177 // |
| 2174 | 2178 |
| 2175 AXObject* AXLayoutObject::treeAncestorDisallowingChild() const | 2179 AXObject* AXLayoutObject::treeAncestorDisallowingChild() const |
| 2176 { | 2180 { |
| 2177 // Determine if this is in a tree. If so, we apply special behavior to make
it work like an AXOutline. | 2181 // Determine if this is in a tree. If so, we apply special behavior to make
it work like an AXOutline. |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2527 if (label && label->layoutObject()) { | 2531 if (label && label->layoutObject()) { |
| 2528 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe
ct(); | 2532 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe
ct(); |
| 2529 result.unite(labelRect); | 2533 result.unite(labelRect); |
| 2530 } | 2534 } |
| 2531 } | 2535 } |
| 2532 | 2536 |
| 2533 return result; | 2537 return result; |
| 2534 } | 2538 } |
| 2535 | 2539 |
| 2536 } // namespace blink | 2540 } // namespace blink |
| OLD | NEW |