| Index: Source/core/editing/Caret.cpp
|
| diff --git a/Source/core/editing/Caret.cpp b/Source/core/editing/Caret.cpp
|
| index 87ba6f0d162fd48d426b6c23c26374136f6b1653..e2528135ca3fb27c3eeb1a0b479d8db15507a059 100644
|
| --- a/Source/core/editing/Caret.cpp
|
| +++ b/Source/core/editing/Caret.cpp
|
| @@ -116,7 +116,7 @@ static inline bool caretRendersInsideNode(Node* node)
|
| return node && !isRenderedTable(node) && !editingIgnoresContent(node);
|
| }
|
|
|
| -RenderObject* CaretBase::caretRenderer(Node* node)
|
| +RenderBlock* CaretBase::caretRenderer(Node* node)
|
| {
|
| if (!node)
|
| return 0;
|
| @@ -127,7 +127,7 @@ RenderObject* CaretBase::caretRenderer(Node* node)
|
|
|
| // if caretNode is a block and caret is inside it then caret should be painted by that block
|
| bool paintedByBlock = renderer->isRenderBlock() && caretRendersInsideNode(node);
|
| - return paintedByBlock ? renderer : renderer->containingBlock();
|
| + return paintedByBlock ? toRenderBlock(renderer) : renderer->containingBlock();
|
| }
|
|
|
| bool CaretBase::updateCaretRect(Document* document, const VisiblePosition& caretPosition)
|
| @@ -148,7 +148,7 @@ bool CaretBase::updateCaretRect(Document* document, const VisiblePosition& caret
|
|
|
| // Get the renderer that will be responsible for painting the caret
|
| // (which is either the renderer we just found, or one of its containers).
|
| - RenderObject* caretPainter = caretRenderer(caretPosition.deepEquivalent().deprecatedNode());
|
| + RenderBlock* caretPainter = caretRenderer(caretPosition.deepEquivalent().deprecatedNode());
|
|
|
| // Compute an offset between the renderer and the caretPainter.
|
| bool unrooted = false;
|
| @@ -168,26 +168,25 @@ bool CaretBase::updateCaretRect(Document* document, const VisiblePosition& caret
|
| return true;
|
| }
|
|
|
| -RenderObject* DragCaretController::caretRenderer() const
|
| +RenderBlock* DragCaretController::caretRenderer() const
|
| {
|
| return CaretBase::caretRenderer(m_position.deepEquivalent().deprecatedNode());
|
| }
|
|
|
| IntRect CaretBase::absoluteBoundsForLocalRect(Node* node, const LayoutRect& rect) const
|
| {
|
| - RenderObject* caretPainter = caretRenderer(node);
|
| + RenderBlock* caretPainter = caretRenderer(node);
|
| if (!caretPainter)
|
| return IntRect();
|
|
|
| LayoutRect localRect(rect);
|
| - if (caretPainter->isBox())
|
| - toRenderBox(caretPainter)->flipForWritingMode(localRect);
|
| + caretPainter->flipForWritingMode(localRect);
|
| return caretPainter->localToAbsoluteQuad(FloatRect(localRect)).enclosingBoundingBox();
|
| }
|
|
|
| void CaretBase::repaintCaretForLocalRect(Node* node, const LayoutRect& rect)
|
| {
|
| - RenderObject* caretPainter = caretRenderer(node);
|
| + RenderBlock* caretPainter = caretRenderer(node);
|
| if (!caretPainter)
|
| return;
|
|
|
| @@ -240,9 +239,8 @@ void CaretBase::paintCaret(Node* node, GraphicsContext* context, const LayoutPoi
|
| return;
|
|
|
| LayoutRect drawingRect = localCaretRectWithoutUpdate();
|
| - RenderObject* renderer = caretRenderer(node);
|
| - if (renderer && renderer->isBox())
|
| - toRenderBox(renderer)->flipForWritingMode(drawingRect);
|
| + if (RenderBlock* renderer = caretRenderer(node))
|
| + renderer->flipForWritingMode(drawingRect);
|
| drawingRect.moveBy(roundedIntPoint(paintOffset));
|
| LayoutRect caret = intersection(drawingRect, clipRect);
|
| if (caret.isEmpty())
|
|
|