summaryrefslogtreecommitdiff
path: root/Source/WebCore/editing/InsertNodeBeforeCommand.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/editing/InsertNodeBeforeCommand.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/editing/InsertNodeBeforeCommand.cpp')
-rw-r--r--Source/WebCore/editing/InsertNodeBeforeCommand.cpp30
1 files changed, 11 insertions, 19 deletions
diff --git a/Source/WebCore/editing/InsertNodeBeforeCommand.cpp b/Source/WebCore/editing/InsertNodeBeforeCommand.cpp
index 7ac54e80a..dabf7c8a1 100644
--- a/Source/WebCore/editing/InsertNodeBeforeCommand.cpp
+++ b/Source/WebCore/editing/InsertNodeBeforeCommand.cpp
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -26,16 +26,15 @@
#include "config.h"
#include "InsertNodeBeforeCommand.h"
-#include "AXObjectCache.h"
#include "Document.h"
-#include "ExceptionCodePlaceholder.h"
+#include "RenderElement.h"
+#include "Text.h"
#include "htmlediting.h"
namespace WebCore {
-InsertNodeBeforeCommand::InsertNodeBeforeCommand(PassRefPtr<Node> insertChild, PassRefPtr<Node> refChild,
- ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)
- : SimpleEditCommand(refChild->document())
+InsertNodeBeforeCommand::InsertNodeBeforeCommand(RefPtr<Node>&& insertChild, RefPtr<Node>&& refChild, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable, EditAction editingAction)
+ : SimpleEditCommand(refChild->document(), editingAction)
, m_insertChild(insertChild)
, m_refChild(refChild)
, m_shouldAssumeContentIsAlwaysEditable(shouldAssumeContentIsAlwaysEditable)
@@ -51,26 +50,19 @@ InsertNodeBeforeCommand::InsertNodeBeforeCommand(PassRefPtr<Node> insertChild, P
void InsertNodeBeforeCommand::doApply()
{
ContainerNode* parent = m_refChild->parentNode();
- if (!parent || (m_shouldAssumeContentIsAlwaysEditable == DoNotAssumeContentIsAlwaysEditable && !parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable)))
+ if (!parent || (m_shouldAssumeContentIsAlwaysEditable == DoNotAssumeContentIsAlwaysEditable && !isEditableNode(*parent)))
return;
- ASSERT(parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable));
+ ASSERT(isEditableNode(*parent));
- parent->insertBefore(m_insertChild.get(), m_refChild.get(), IGNORE_EXCEPTION);
-
- if (AXObjectCache* cache = document().existingAXObjectCache())
- cache->nodeTextChangeNotification(m_insertChild.get(), AXObjectCache::AXTextInserted, 0, m_insertChild->nodeValue());
+ parent->insertBefore(*m_insertChild, m_refChild.get());
}
void InsertNodeBeforeCommand::doUnapply()
{
- if (!m_insertChild->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable))
+ if (!isEditableNode(*m_insertChild))
return;
- // Need to notify this before actually deleting the text
- if (AXObjectCache* cache = document().existingAXObjectCache())
- cache->nodeTextChangeNotification(m_insertChild.get(), AXObjectCache::AXTextDeleted, 0, m_insertChild->nodeValue());
-
- m_insertChild->remove(IGNORE_EXCEPTION);
+ m_insertChild->remove();
}
#ifndef NDEBUG