| 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 1423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1434 m_cachedElementRectDirty = false; | 1434 m_cachedElementRectDirty = false; |
| 1435 } | 1435 } |
| 1436 | 1436 |
| 1437 void AXLayoutObject::markCachedElementRectDirty() const | 1437 void AXLayoutObject::markCachedElementRectDirty() const |
| 1438 { | 1438 { |
| 1439 if (m_cachedElementRectDirty) | 1439 if (m_cachedElementRectDirty) |
| 1440 return; | 1440 return; |
| 1441 | 1441 |
| 1442 // Marks children recursively, if this element changed. | 1442 // Marks children recursively, if this element changed. |
| 1443 m_cachedElementRectDirty = true; | 1443 m_cachedElementRectDirty = true; |
| 1444 for (AXObject* child = rawFirstChild(); child; child = child->rawFirstSiblin
g()) | 1444 for (AXObject* child = rawFirstChild(); child; child = child->rawNextSibling
()) |
| 1445 child->markCachedElementRectDirty(); | 1445 child->markCachedElementRectDirty(); |
| 1446 } | 1446 } |
| 1447 | 1447 |
| 1448 IntPoint AXLayoutObject::clickPoint() | 1448 IntPoint AXLayoutObject::clickPoint() |
| 1449 { | 1449 { |
| 1450 // Headings are usually much wider than their textual content. If the mid po
int is used, often it can be wrong. | 1450 // Headings are usually much wider than their textual content. If the mid po
int is used, often it can be wrong. |
| 1451 if (isHeading() && children().size() == 1) | 1451 if (isHeading() && children().size() == 1) |
| 1452 return children()[0]->clickPoint(); | 1452 return children()[0]->clickPoint(); |
| 1453 | 1453 |
| 1454 // use the default position unless this is an editable web area, in which ca
se we use the selection bounds. | 1454 // use the default position unless this is an editable web area, in which ca
se we use the selection bounds. |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1586 return 0; | 1586 return 0; |
| 1587 | 1587 |
| 1588 LayoutObject* firstChild = firstChildConsideringContinuation(m_layoutObject)
; | 1588 LayoutObject* firstChild = firstChildConsideringContinuation(m_layoutObject)
; |
| 1589 | 1589 |
| 1590 if (!firstChild) | 1590 if (!firstChild) |
| 1591 return 0; | 1591 return 0; |
| 1592 | 1592 |
| 1593 return axObjectCache().getOrCreate(firstChild); | 1593 return axObjectCache().getOrCreate(firstChild); |
| 1594 } | 1594 } |
| 1595 | 1595 |
| 1596 AXObject* AXLayoutObject::rawFirstSibling() const | 1596 AXObject* AXLayoutObject::rawNextSibling() const |
| 1597 { | 1597 { |
| 1598 if (!m_layoutObject) | 1598 if (!m_layoutObject) |
| 1599 return 0; | 1599 return 0; |
| 1600 | 1600 |
| 1601 LayoutObject* nextSibling = 0; | 1601 LayoutObject* nextSibling = 0; |
| 1602 | 1602 |
| 1603 LayoutInline* inlineContinuation = m_layoutObject->isLayoutBlock() ? toLayou
tBlock(m_layoutObject)->inlineElementContinuation() : 0; | 1603 LayoutInline* inlineContinuation = m_layoutObject->isLayoutBlock() ? toLayou
tBlock(m_layoutObject)->inlineElementContinuation() : 0; |
| 1604 if (inlineContinuation) { | 1604 if (inlineContinuation) { |
| 1605 // Case 1: node is a block and has an inline continuation. Next sibling
is the inline continuation's first child. | 1605 // Case 1: node is a block and has an inline continuation. Next sibling
is the inline continuation's first child. |
| 1606 nextSibling = firstChildConsideringContinuation(inlineContinuation); | 1606 nextSibling = firstChildConsideringContinuation(inlineContinuation); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1645 ASSERT(!m_haveChildren); | 1645 ASSERT(!m_haveChildren); |
| 1646 | 1646 |
| 1647 m_haveChildren = true; | 1647 m_haveChildren = true; |
| 1648 | 1648 |
| 1649 if (!canHaveChildren()) | 1649 if (!canHaveChildren()) |
| 1650 return; | 1650 return; |
| 1651 | 1651 |
| 1652 HeapVector<Member<AXObject>> ownedChildren; | 1652 HeapVector<Member<AXObject>> ownedChildren; |
| 1653 computeAriaOwnsChildren(ownedChildren); | 1653 computeAriaOwnsChildren(ownedChildren); |
| 1654 | 1654 |
| 1655 for (AXObject* obj = rawFirstChild(); obj; obj = obj->rawFirstSibling()) { | 1655 for (AXObject* obj = rawFirstChild(); obj; obj = obj->rawNextSibling()) { |
| 1656 if (!axObjectCache().isAriaOwned(obj)) | 1656 if (!axObjectCache().isAriaOwned(obj)) |
| 1657 addChild(obj); | 1657 addChild(obj); |
| 1658 } | 1658 } |
| 1659 | 1659 |
| 1660 addHiddenChildren(); | 1660 addHiddenChildren(); |
| 1661 addAttachmentChildren(); | 1661 addAttachmentChildren(); |
| 1662 addPopupChildren(); | 1662 addPopupChildren(); |
| 1663 addImageMapChildren(); | 1663 addImageMapChildren(); |
| 1664 addTextFieldChildren(); | 1664 addTextFieldChildren(); |
| 1665 addCanvasChildren(); | 1665 addCanvasChildren(); |
| (...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2553 if (label && label->layoutObject()) { | 2553 if (label && label->layoutObject()) { |
| 2554 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe
ct(); | 2554 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe
ct(); |
| 2555 result.unite(labelRect); | 2555 result.unite(labelRect); |
| 2556 } | 2556 } |
| 2557 } | 2557 } |
| 2558 | 2558 |
| 2559 return result; | 2559 return result; |
| 2560 } | 2560 } |
| 2561 | 2561 |
| 2562 } // namespace blink | 2562 } // namespace blink |
| OLD | NEW |