diff options
author | Steve Block <steveblock@google.com> | 2010-04-27 16:31:00 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-05-11 14:42:12 +0100 |
commit | dcc8cf2e65d1aa555cce12431a16547e66b469ee (patch) | |
tree | 92a8d65cd5383bca9749f5327fb5e440563926e6 /WebCore/editing/DeleteSelectionCommand.cpp | |
parent | ccac38a6b48843126402088a309597e682f40fe6 (diff) | |
download | external_webkit-dcc8cf2e65d1aa555cce12431a16547e66b469ee.zip external_webkit-dcc8cf2e65d1aa555cce12431a16547e66b469ee.tar.gz external_webkit-dcc8cf2e65d1aa555cce12431a16547e66b469ee.tar.bz2 |
Merge webkit.org at r58033 : Initial merge by git
Change-Id: If006c38561af287c50cd578d251629b51e4d8cd1
Diffstat (limited to 'WebCore/editing/DeleteSelectionCommand.cpp')
-rw-r--r-- | WebCore/editing/DeleteSelectionCommand.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/WebCore/editing/DeleteSelectionCommand.cpp b/WebCore/editing/DeleteSelectionCommand.cpp index d3d9cc9..5e81d50 100644 --- a/WebCore/editing/DeleteSelectionCommand.cpp +++ b/WebCore/editing/DeleteSelectionCommand.cpp @@ -161,6 +161,20 @@ void DeleteSelectionCommand::initializeStartEnd(Position& start, Position& end) } } +void DeleteSelectionCommand::setStartingSelectionOnSmartDelete(const Position& start, const Position& end) +{ + VisiblePosition newBase; + VisiblePosition newExtent; + if (startingSelection().isBaseFirst()) { + newBase = start; + newExtent = end; + } else { + newBase = end; + newExtent = start; + } + setStartingSelection(VisibleSelection(newBase, newExtent)); +} + void DeleteSelectionCommand::initializePositionData() { Position start, end; @@ -230,6 +244,8 @@ void DeleteSelectionCommand::initializePositionData() m_upstreamStart = pos.upstream(); m_downstreamStart = pos.downstream(); m_leadingWhitespace = m_upstreamStart.leadingWhitespacePosition(visiblePos.affinity()); + + setStartingSelectionOnSmartDelete(m_upstreamStart, m_upstreamEnd); } // trailing whitespace is only considered for smart delete if there is no leading @@ -241,6 +257,8 @@ void DeleteSelectionCommand::initializePositionData() m_upstreamEnd = pos.upstream(); m_downstreamEnd = pos.downstream(); m_trailingWhitespace = m_downstreamEnd.trailingWhitespacePosition(VP_DEFAULT_AFFINITY); + + setStartingSelectionOnSmartDelete(m_downstreamStart, m_downstreamEnd); } } |