summaryrefslogtreecommitdiff
path: root/Source/WebCore/editing/InsertIntoTextNodeCommand.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/InsertIntoTextNodeCommand.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/editing/InsertIntoTextNodeCommand.cpp')
-rw-r--r--Source/WebCore/editing/InsertIntoTextNodeCommand.cpp43
1 files changed, 20 insertions, 23 deletions
diff --git a/Source/WebCore/editing/InsertIntoTextNodeCommand.cpp b/Source/WebCore/editing/InsertIntoTextNodeCommand.cpp
index 370d4bf4e..9d2894e3e 100644
--- a/Source/WebCore/editing/InsertIntoTextNodeCommand.cpp
+++ b/Source/WebCore/editing/InsertIntoTextNodeCommand.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,21 +26,21 @@
#include "config.h"
#include "InsertIntoTextNodeCommand.h"
-#include "AXObjectCache.h"
#include "Document.h"
-#include "ExceptionCodePlaceholder.h"
+#include "Frame.h"
#include "RenderText.h"
#include "Settings.h"
#include "Text.h"
+
#if PLATFORM(IOS)
#include "RenderText.h"
#endif
namespace WebCore {
-InsertIntoTextNodeCommand::InsertIntoTextNodeCommand(PassRefPtr<Text> node, unsigned offset, const String& text)
- : SimpleEditCommand(node->document())
- , m_node(node)
+InsertIntoTextNodeCommand::InsertIntoTextNodeCommand(RefPtr<Text>&& node, unsigned offset, const String& text, EditAction editingAction)
+ : SimpleEditCommand(node->document(), editingAction)
+ , m_node(WTFMove(node))
, m_offset(offset)
, m_text(text)
{
@@ -51,8 +51,7 @@ InsertIntoTextNodeCommand::InsertIntoTextNodeCommand(PassRefPtr<Text> node, unsi
void InsertIntoTextNodeCommand::doApply()
{
- // FIXME: EditCommand should always have a Frame, so going through Document for Settings shouldn't be necessary.
- bool passwordEchoEnabled = document().settings() && document().settings()->passwordEchoEnabled();
+ bool passwordEchoEnabled = frame().settings().passwordEchoEnabled();
if (passwordEchoEnabled)
document().updateLayoutIgnorePendingStylesheets();
@@ -60,42 +59,40 @@ void InsertIntoTextNodeCommand::doApply()
return;
if (passwordEchoEnabled) {
- RenderText* renderText = m_node->renderer();
- if (renderText && renderText->isSecure())
- renderText->momentarilyRevealLastTypedCharacter(m_offset + m_text.length() - 1);
+ if (RenderText* renderText = m_node->renderer())
+ renderText->momentarilyRevealLastTypedCharacter(m_offset + m_text.length());
}
- m_node->insertData(m_offset, m_text, IGNORE_EXCEPTION);
-
- if (AXObjectCache* cache = document().existingAXObjectCache())
- cache->nodeTextChangeNotification(m_node.get(), AXObjectCache::AXTextInserted, m_offset, m_text);
+ m_node->insertData(m_offset, m_text);
}
#if PLATFORM(IOS)
+
+// FIXME: Why would reapply be iOS-specific?
void InsertIntoTextNodeCommand::doReapply()
{
- ExceptionCode ec;
- m_node->insertData(m_offset, m_text, ec);
+ // FIXME: Shouldn't this have a hasEditableStyle check?
+
+ m_node->insertData(m_offset, m_text);
}
+
#endif
void InsertIntoTextNodeCommand::doUnapply()
{
if (!m_node->hasEditableStyle())
return;
-
- // Need to notify this before actually deleting the text
- if (AXObjectCache* cache = document().existingAXObjectCache())
- cache->nodeTextChangeNotification(m_node.get(), AXObjectCache::AXTextDeleted, m_offset, m_text);
- m_node->deleteData(m_offset, m_text.length(), IGNORE_EXCEPTION);
+ m_node->deleteData(m_offset, m_text.length());
}
#ifndef NDEBUG
+
void InsertIntoTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes)
{
addNodeAndDescendants(m_node.get(), nodes);
}
+
#endif
} // namespace WebCore