| Index: Source/core/editing/Caret.cpp
|
| diff --git a/Source/core/editing/Caret.cpp b/Source/core/editing/Caret.cpp
|
| index e2528135ca3fb27c3eeb1a0b479d8db15507a059..8a7e3e784ce2ecc7346a246527d8d9df91a5c78d 100644
|
| --- a/Source/core/editing/Caret.cpp
|
| +++ b/Source/core/editing/Caret.cpp
|
| @@ -27,9 +27,11 @@
|
| #include "core/editing/Caret.h"
|
|
|
| #include "core/dom/Document.h"
|
| +#include "core/editing/VisibleUnits.h"
|
| #include "core/editing/htmlediting.h"
|
| #include "core/frame/LocalFrame.h"
|
| #include "core/frame/Settings.h"
|
| +#include "core/html/HTMLTextFormControlElement.h"
|
| #include "core/rendering/RenderBlock.h"
|
| #include "core/rendering/RenderView.h"
|
| #include "platform/graphics/GraphicsContext.h"
|
| @@ -130,25 +132,25 @@ RenderBlock* CaretBase::caretRenderer(Node* node)
|
| return paintedByBlock ? toRenderBlock(renderer) : renderer->containingBlock();
|
| }
|
|
|
| -bool CaretBase::updateCaretRect(Document* document, const VisiblePosition& caretPosition)
|
| +bool CaretBase::updateCaretRect(Document* document, const PositionWithAffinity& caretPosition)
|
| {
|
| document->updateRenderTreeIfNeeded();
|
| m_caretLocalRect = LayoutRect();
|
|
|
| m_caretRectNeedsUpdate = false;
|
|
|
| - if (caretPosition.isNull())
|
| + if (caretPosition.position().isNull())
|
| return false;
|
|
|
| - ASSERT(caretPosition.deepEquivalent().deprecatedNode()->renderer());
|
| + ASSERT(caretPosition.position().deprecatedNode()->renderer());
|
|
|
| // First compute a rect local to the renderer at the selection start.
|
| RenderObject* renderer;
|
| - LayoutRect localRect = caretPosition.localCaretRect(renderer);
|
| + LayoutRect localRect = localCaretRectOfPosition(caretPosition, renderer);
|
|
|
| // Get the renderer that will be responsible for painting the caret
|
| // (which is either the renderer we just found, or one of its containers).
|
| - RenderBlock* caretPainter = caretRenderer(caretPosition.deepEquivalent().deprecatedNode());
|
| + RenderBlock* caretPainter = caretRenderer(caretPosition.position().deprecatedNode());
|
|
|
| // Compute an offset between the renderer and the caretPainter.
|
| bool unrooted = false;
|
| @@ -168,6 +170,11 @@ bool CaretBase::updateCaretRect(Document* document, const VisiblePosition& caret
|
| return true;
|
| }
|
|
|
| +bool CaretBase::updateCaretRect(Document* document, const VisiblePosition& caretPosition)
|
| +{
|
| + return updateCaretRect(document, PositionWithAffinity(caretPosition.deepEquivalent(), caretPosition.affinity()));
|
| +}
|
| +
|
| RenderBlock* DragCaretController::caretRenderer() const
|
| {
|
| return CaretBase::caretRenderer(m_position.deepEquivalent().deprecatedNode());
|
|
|