OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights
reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights
reserved. |
8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 1696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1707 bool RenderTableSection::nodeAtPoint(const HitTestRequest& request, HitTestResul
t& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumu
latedOffset, HitTestAction action) | 1707 bool RenderTableSection::nodeAtPoint(const HitTestRequest& request, HitTestResul
t& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumu
latedOffset, HitTestAction action) |
1708 { | 1708 { |
1709 // If we have no children then we have nothing to do. | 1709 // If we have no children then we have nothing to do. |
1710 if (!firstChild()) | 1710 if (!firstChild()) |
1711 return false; | 1711 return false; |
1712 | 1712 |
1713 // Table sections cannot ever be hit tested. Effectively they do not exist. | 1713 // Table sections cannot ever be hit tested. Effectively they do not exist. |
1714 // Just forward to our children always. | 1714 // Just forward to our children always. |
1715 LayoutPoint adjustedLocation = accumulatedOffset + location(); | 1715 LayoutPoint adjustedLocation = accumulatedOffset + location(); |
1716 | 1716 |
1717 if (hasOverflowClip() && !locationInContainer.intersects(overflowClipRect(ad
justedLocation, locationInContainer.region()))) | 1717 if (hasOverflowClip() && !locationInContainer.intersects(overflowClipRect(ad
justedLocation))) |
1718 return false; | 1718 return false; |
1719 | 1719 |
1720 if (hasOverflowingCell()) { | 1720 if (hasOverflowingCell()) { |
1721 for (RenderObject* child = lastChild(); child; child = child->previousSi
bling()) { | 1721 for (RenderObject* child = lastChild(); child; child = child->previousSi
bling()) { |
1722 // FIXME: We have to skip over inline flows, since they can show up
inside table rows | 1722 // FIXME: We have to skip over inline flows, since they can show up
inside table rows |
1723 // at the moment (a demoted inline <form> for example). If we ever i
mplement a | 1723 // at the moment (a demoted inline <form> for example). If we ever i
mplement a |
1724 // table-specific hit-test method (which we should do for performanc
e reasons anyway), | 1724 // table-specific hit-test method (which we should do for performanc
e reasons anyway), |
1725 // then we can remove this check. | 1725 // then we can remove this check. |
1726 if (child->isBox() && !toRenderBox(child)->hasSelfPaintingLayer()) { | 1726 if (child->isBox() && !toRenderBox(child)->hasSelfPaintingLayer()) { |
1727 LayoutPoint childPoint = flipForWritingModeForChild(toRenderBox(
child), adjustedLocation); | 1727 LayoutPoint childPoint = flipForWritingModeForChild(toRenderBox(
child), adjustedLocation); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1814 if (!style()->isLeftToRightDirection()) | 1814 if (!style()->isLeftToRightDirection()) |
1815 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta
ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] +
horizontalBorderSpacing); | 1815 cellLocation.setX(table()->columnPositions()[table()->numEffCols()] - ta
ble()->columnPositions()[table()->colToEffCol(cell->col() + cell->colSpan())] +
horizontalBorderSpacing); |
1816 else | 1816 else |
1817 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont
alBorderSpacing); | 1817 cellLocation.setX(table()->columnPositions()[effectiveColumn] + horizont
alBorderSpacing); |
1818 | 1818 |
1819 cell->setLogicalLocation(cellLocation); | 1819 cell->setLogicalLocation(cellLocation); |
1820 view()->addLayoutDelta(oldCellLocation - cell->location()); | 1820 view()->addLayoutDelta(oldCellLocation - cell->location()); |
1821 } | 1821 } |
1822 | 1822 |
1823 } // namespace WebCore | 1823 } // namespace WebCore |
OLD | NEW |