diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/editing/EditCommand.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/editing/EditCommand.cpp | 50 |
1 files changed, 34 insertions, 16 deletions
diff --git a/chromium/third_party/WebKit/Source/core/editing/EditCommand.cpp b/chromium/third_party/WebKit/Source/core/editing/EditCommand.cpp index 4b318f763d8..9f4e60b06c0 100644 --- a/chromium/third_party/WebKit/Source/core/editing/EditCommand.cpp +++ b/chromium/third_party/WebKit/Source/core/editing/EditCommand.cpp @@ -30,13 +30,13 @@ #include "core/dom/NodeTraversal.h" #include "core/editing/CompositeEditCommand.h" #include "core/editing/FrameSelection.h" -#include "core/frame/Frame.h" +#include "core/frame/LocalFrame.h" namespace WebCore { EditCommand::EditCommand(Document& document) : m_document(&document) - , m_parent(0) + , m_parent(nullptr) { ASSERT(m_document); ASSERT(m_document->frame()); @@ -46,7 +46,7 @@ EditCommand::EditCommand(Document& document) EditCommand::EditCommand(Document* document, const VisibleSelection& startingSelection, const VisibleSelection& endingSelection) : m_document(document) - , m_parent(0) + , m_parent(nullptr) { ASSERT(m_document); ASSERT(m_document->frame()); @@ -70,30 +70,40 @@ static inline EditCommandComposition* compositionIfPossible(EditCommand* command return toCompositeEditCommand(command)->composition(); } -void EditCommand::setStartingSelection(const VisibleSelection& s) +void EditCommand::setStartingSelection(const VisibleSelection& selection) { - for (EditCommand* cmd = this; ; cmd = cmd->m_parent) { - if (EditCommandComposition* composition = compositionIfPossible(cmd)) { - ASSERT(cmd->isTopLevelCommand()); - composition->setStartingSelection(s); + for (EditCommand* command = this; ; command = command->m_parent) { + if (EditCommandComposition* composition = compositionIfPossible(command)) { + ASSERT(command->isTopLevelCommand()); + composition->setStartingSelection(selection); } - cmd->m_startingSelection = s; - if (!cmd->m_parent || cmd->m_parent->isFirstCommand(cmd)) + command->m_startingSelection = selection; + if (!command->m_parent || command->m_parent->isFirstCommand(command)) break; } } -void EditCommand::setEndingSelection(const VisibleSelection &s) +void EditCommand::setStartingSelection(const VisiblePosition& position) { - for (EditCommand* cmd = this; cmd; cmd = cmd->m_parent) { - if (EditCommandComposition* composition = compositionIfPossible(cmd)) { - ASSERT(cmd->isTopLevelCommand()); - composition->setEndingSelection(s); + setStartingSelection(VisibleSelection(position)); +} + +void EditCommand::setEndingSelection(const VisibleSelection& selection) +{ + for (EditCommand* command = this; command; command = command->m_parent) { + if (EditCommandComposition* composition = compositionIfPossible(command)) { + ASSERT(command->isTopLevelCommand()); + composition->setEndingSelection(selection); } - cmd->m_endingSelection = s; + command->m_endingSelection = selection; } } +void EditCommand::setEndingSelection(const VisiblePosition& position) +{ + setEndingSelection(VisibleSelection(position)); +} + void EditCommand::setParent(CompositeEditCommand* parent) { ASSERT((parent && !m_parent) || (!parent && m_parent)); @@ -110,4 +120,12 @@ void SimpleEditCommand::doReapply() doApply(); } +void EditCommand::trace(Visitor* visitor) +{ + visitor->trace(m_document); + visitor->trace(m_startingSelection); + visitor->trace(m_endingSelection); + visitor->trace(m_parent); +} + } // namespace WebCore |