Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(948)

Unified Diff: Source/core/editing/FrameSelection.cpp

Issue 20681004: Make first-letter style to work with editing Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 2013-09-20T18:27:32 Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/editing/FrameSelection.cpp
diff --git a/Source/core/editing/FrameSelection.cpp b/Source/core/editing/FrameSelection.cpp
index 2612860755ac4f5ff1a9c60394ad1003990fd77e..de3760390f83d70cff3b4d81beb7e563942430ad 100644
--- a/Source/core/editing/FrameSelection.cpp
+++ b/Source/core/editing/FrameSelection.cpp
@@ -1203,7 +1203,7 @@ void FrameSelection::prepareForDestruction()
view->clearSelection();
setSelection(VisibleSelection(), CloseTyping | ClearTypingStyle | DoNotUpdateAppearance);
- m_previousCaretNode.clear();
+ m_previousCaretPosition.clear();
}
void FrameSelection::setStart(const VisiblePosition &pos, EUserTriggered trigger)
@@ -1248,7 +1248,7 @@ void FrameSelection::setExtent(const Position &pos, EAffinity affinity, EUserTri
RenderObject* FrameSelection::caretRenderer() const
{
- return CaretBase::caretRenderer(m_selection.start().deprecatedNode());
+ return CaretBase::caretRenderer(m_selection.start());
}
static bool isNonOrphanedCaret(const VisibleSelection& selection)
@@ -1292,19 +1292,18 @@ bool FrameSelection::recomputeCaretRect()
return false;
IntRect oldAbsCaretBounds = m_absCaretBounds;
- m_absCaretBounds = absoluteBoundsForLocalRect(m_selection.start().deprecatedNode(), localCaretRectWithoutUpdate());
+ m_absCaretBounds = absoluteBoundsForLocalRect(m_selection.start(), localCaretRectWithoutUpdate());
m_absCaretBoundsDirty = false;
if (oldAbsCaretBounds == m_absCaretBounds)
return false;
if (RenderView* view = m_frame->document()->renderView()) {
- Node* node = m_selection.start().deprecatedNode();
- if (m_previousCaretNode)
- repaintCaretForLocalRect(m_previousCaretNode.get(), oldRect);
- m_previousCaretNode = node;
+ if (m_previousCaretPosition.isNotNull())
+ repaintCaretForLocalRect(m_previousCaretPosition, oldRect);
+ m_previousCaretPosition = m_selection.start();
if (shouldRepaintCaret(view, isContentEditable()))
- repaintCaretForLocalRect(node, newRect);
+ repaintCaretForLocalRect(m_previousCaretPosition, newRect);
}
return true;
@@ -1315,13 +1314,13 @@ void FrameSelection::invalidateCaretRect()
if (!isCaret())
return;
- CaretBase::invalidateCaretRect(m_selection.start().deprecatedNode(), recomputeCaretRect());
+ CaretBase::invalidateCaretRect(m_selection.start(), recomputeCaretRect());
}
void FrameSelection::paintCaret(GraphicsContext* context, const LayoutPoint& paintOffset, const LayoutRect& clipRect)
{
if (m_selection.isCaret() && m_caretPaint)
- CaretBase::paintCaret(m_selection.start().deprecatedNode(), context, paintOffset, clipRect);
+ CaretBase::paintCaret(m_selection.start(), context, paintOffset, clipRect);
}
void FrameSelection::debugRenderer(RenderObject *r, bool selected) const
@@ -1402,11 +1401,11 @@ bool FrameSelection::contains(const LayoutPoint& point)
HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
HitTestResult result(point);
document->renderView()->hitTest(request, result);
- Node* innerNode = result.innerNode();
- if (!innerNode || !innerNode->renderer())
+ RenderObject* renderer = result.renderer();
+ if (!renderer)
return false;
- VisiblePosition visiblePos(innerNode->renderer()->positionForPoint(result.localPoint()));
+ VisiblePosition visiblePos(renderer->positionForPoint(result.localPoint()));
if (visiblePos.isNull())
return false;
@@ -1685,11 +1684,8 @@ void FrameSelection::updateAppearance()
// We can get into a state where the selection endpoints map to the same VisiblePosition when a selection is deleted
// because we don't yet notify the FrameSelection of text removal.
- if (startPos.isNotNull() && endPos.isNotNull() && selection.visibleStart() != selection.visibleEnd()) {
- RenderObject* startRenderer = startPos.deprecatedNode()->renderer();
- RenderObject* endRenderer = endPos.deprecatedNode()->renderer();
- view->setSelection(startRenderer, startPos.deprecatedEditingOffset(), endRenderer, endPos.deprecatedEditingOffset());
- }
+ if (startPos.isNotNull() && endPos.isNotNull() && selection.visibleStart() != selection.visibleEnd())
+ view->setSelection(startPos.rendererOfAnchorNode(), startPos.deprecatedOffsetInRendererOfAnchorNode(), endPos.rendererOfAnchorNode(), endPos.deprecatedOffsetInRendererOfAnchorNode());
}
void FrameSelection::setCaretVisibility(CaretVisibility visibility)
@@ -1908,11 +1904,11 @@ void FrameSelection::revealSelection(const ScrollAlignment& alignment, RevealExt
Position start = this->start();
ASSERT(start.deprecatedNode());
- if (start.deprecatedNode() && start.deprecatedNode()->renderer()) {
+ if (start.rendererOfAnchorNode()) {
// FIXME: This code only handles scrolling the startContainer's layer, but
// the selection rect could intersect more than just that.
// See <rdar://problem/4799899>.
- if (start.deprecatedNode()->renderer()->scrollRectToVisible(rect, alignment, alignment))
+ if (start.rendererOfAnchorNode()->scrollRectToVisible(rect, alignment, alignment))
updateAppearance();
}
}

Powered by Google App Engine
This is Rietveld 408576698