diff options
Diffstat (limited to 'WebCore/rendering/RenderTableRow.cpp')
-rw-r--r-- | WebCore/rendering/RenderTableRow.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/WebCore/rendering/RenderTableRow.cpp b/WebCore/rendering/RenderTableRow.cpp index 2166ef2..98544a6 100644 --- a/WebCore/rendering/RenderTableRow.cpp +++ b/WebCore/rendering/RenderTableRow.cpp @@ -115,7 +115,7 @@ void RenderTableRow::layout() ASSERT(needsLayout()); // Table rows do not add translation. - LayoutStateMaintainer statePusher(view(), this, IntSize()); + LayoutStateMaintainer statePusher(view(), this, IntSize(), style()->isFlippedBlocksWritingMode()); bool paginated = view()->layoutState()->isPaginated(); @@ -175,9 +175,12 @@ bool RenderTableRow::nodeAtPoint(const HitTestRequest& request, HitTestResult& r // at the moment (a demoted inline <form> for example). If we ever implement a // table-specific hit-test method (which we should do for performance reasons anyway), // then we can remove this check. - if (child->isTableCell() && !toRenderBox(child)->hasSelfPaintingLayer() && child->nodeAtPoint(request, result, x, y, tx, ty, action)) { - updateHitTestResult(result, IntPoint(x - tx, y - ty)); - return true; + if (child->isTableCell() && !toRenderBox(child)->hasSelfPaintingLayer()) { + IntPoint cellPoint = flipForWritingMode(toRenderTableCell(child), IntPoint(tx, ty), ParentToChildFlippingAdjustment); + if (child->nodeAtPoint(request, result, x, y, cellPoint.x(), cellPoint.y(), action)) { + updateHitTestResult(result, IntPoint(x - cellPoint.x(), y - cellPoint.y())); + return true; + } } } |