Commit dad7a748 authored by yosin@chromium.org's avatar yosin@chromium.org

Move computeInlineBoxPosition() out from VisiblePosition

This patch moves |computeInlineBoxPosition()| out from |VisiblePosition| for
a preparation of moving |computeInlineBoxPosition()| out from |Position|
to make |Position| class simpler for improving code health.

BUG=518738
TEST=n/a; no behavior changes

Review URL: https://codereview.chromium.org/1302713002

git-svn-id: svn://svn.chromium.org/blink/trunk@200809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 155939d9
...@@ -528,9 +528,9 @@ TextDirection FrameSelection::directionOfSelection() ...@@ -528,9 +528,9 @@ TextDirection FrameSelection::directionOfSelection()
VisiblePosition startPosition = m_selection.visibleStart(); VisiblePosition startPosition = m_selection.visibleStart();
VisiblePosition endPosition = m_selection.visibleEnd(); VisiblePosition endPosition = m_selection.visibleEnd();
if (startPosition.isNotNull()) if (startPosition.isNotNull())
startBox = startPosition.computeInlineBoxPosition().inlineBox; startBox = computeInlineBoxPosition(startPosition).inlineBox;
if (endPosition.isNotNull()) if (endPosition.isNotNull())
endBox = endPosition.computeInlineBoxPosition().inlineBox; endBox = computeInlineBoxPosition(endPosition).inlineBox;
if (startBox && endBox && startBox->direction() == endBox->direction()) if (startBox && endBox && startBox->direction() == endBox->direction())
return startBox->direction(); return startBox->direction();
......
...@@ -74,7 +74,7 @@ RenderedPosition::RenderedPosition(const VisiblePosition& position) ...@@ -74,7 +74,7 @@ RenderedPosition::RenderedPosition(const VisiblePosition& position)
{ {
if (position.isNull()) if (position.isNull())
return; return;
InlineBoxPosition boxPosition = position.computeInlineBoxPosition(); InlineBoxPosition boxPosition = computeInlineBoxPosition(position);
m_inlineBox = boxPosition.inlineBox; m_inlineBox = boxPosition.inlineBox;
m_offset = boxPosition.offsetInBox; m_offset = boxPosition.offsetInBox;
if (m_inlineBox) if (m_inlineBox)
......
...@@ -110,11 +110,6 @@ public: ...@@ -110,11 +110,6 @@ public:
// FIXME: This does not handle [table, 0] correctly. // FIXME: This does not handle [table, 0] correctly.
Element* rootEditableElement() const { return m_deepPosition.isNotNull() ? m_deepPosition.anchorNode()->rootEditableElement() : 0; } Element* rootEditableElement() const { return m_deepPosition.isNotNull() ? m_deepPosition.anchorNode()->rootEditableElement() : 0; }
InlineBoxPosition computeInlineBoxPosition() const
{
return m_deepPosition.computeInlineBoxPosition(m_affinity);
}
// Rect is local to the returned layoutObject // Rect is local to the returned layoutObject
LayoutRect localCaretRect(LayoutObject*&) const; LayoutRect localCaretRect(LayoutObject*&) const;
// Bounds of (possibly transformed) caret in absolute coords // Bounds of (possibly transformed) caret in absolute coords
...@@ -142,6 +137,13 @@ private: ...@@ -142,6 +137,13 @@ private:
EAffinity m_affinity; EAffinity m_affinity;
}; };
// TODO(yosin) We should move |computeInlineBoxPosition()| to "VisibleUnits.h"
// with |Position| version.
inline InlineBoxPosition computeInlineBoxPosition(const VisiblePosition& position)
{
return position.deepEquivalent().computeInlineBoxPosition(position.affinity());
}
EphemeralRange makeRange(const VisiblePosition&, const VisiblePosition&); EphemeralRange makeRange(const VisiblePosition&, const VisiblePosition&);
CORE_EXPORT Position canonicalPositionOf(const Position&); CORE_EXPORT Position canonicalPositionOf(const Position&);
......
...@@ -973,7 +973,7 @@ VisiblePosition previousLinePosition(const VisiblePosition &visiblePosition, Lay ...@@ -973,7 +973,7 @@ VisiblePosition previousLinePosition(const VisiblePosition &visiblePosition, Lay
return VisiblePosition(); return VisiblePosition();
RootInlineBox* root = 0; RootInlineBox* root = 0;
InlineBox* box = visiblePosition.computeInlineBoxPosition().inlineBox; InlineBox* box = computeInlineBoxPosition(visiblePosition).inlineBox;
if (box) { if (box) {
root = box->root().prevRootBox(); root = box->root().prevRootBox();
// We want to skip zero height boxes. // We want to skip zero height boxes.
...@@ -1026,7 +1026,7 @@ VisiblePosition nextLinePosition(const VisiblePosition &visiblePosition, LayoutU ...@@ -1026,7 +1026,7 @@ VisiblePosition nextLinePosition(const VisiblePosition &visiblePosition, LayoutU
return VisiblePosition(); return VisiblePosition();
RootInlineBox* root = 0; RootInlineBox* root = 0;
InlineBox* box = visiblePosition.computeInlineBoxPosition().inlineBox; InlineBox* box = computeInlineBoxPosition(visiblePosition).inlineBox;
if (box) { if (box) {
root = box->root().nextRootBox(); root = box->root().nextRootBox();
// We want to skip zero height boxes. // We want to skip zero height boxes.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment