| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2005, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 #include "bindings/v8/ExceptionState.h" | 29 #include "bindings/v8/ExceptionState.h" |
| 30 #include "bindings/v8/ExceptionStatePlaceholder.h" | 30 #include "bindings/v8/ExceptionStatePlaceholder.h" |
| 31 #include "core/dom/Document.h" | 31 #include "core/dom/Document.h" |
| 32 #include "core/dom/DocumentMarkerController.h" | 32 #include "core/dom/DocumentMarkerController.h" |
| 33 #include "core/dom/Text.h" | 33 #include "core/dom/Text.h" |
| 34 #include "wtf/Assertions.h" | 34 #include "wtf/Assertions.h" |
| 35 | 35 |
| 36 namespace WebCore { | 36 namespace WebCore { |
| 37 | 37 |
| 38 SplitTextNodeCommand::SplitTextNodeCommand(PassRefPtr<Text> text, int offset) | 38 SplitTextNodeCommand::SplitTextNodeCommand(PassRefPtr<Text> text, int offset) |
| 39 : SimpleEditCommand(text->document()) | 39 : SimpleEditCommand(&text->document()) |
| 40 , m_text2(text) | 40 , m_text2(text) |
| 41 , m_offset(offset) | 41 , m_offset(offset) |
| 42 { | 42 { |
| 43 // NOTE: Various callers rely on the fact that the original node becomes | 43 // NOTE: Various callers rely on the fact that the original node becomes |
| 44 // the second node (i.e. the new node is inserted before the existing one). | 44 // the second node (i.e. the new node is inserted before the existing one). |
| 45 // That is not a fundamental dependency (i.e. it could be re-coded), but | 45 // That is not a fundamental dependency (i.e. it could be re-coded), but |
| 46 // rather is based on how this code happens to work. | 46 // rather is based on how this code happens to work. |
| 47 ASSERT(m_text2); | 47 ASSERT(m_text2); |
| 48 ASSERT(m_text2->length() > 0); | 48 ASSERT(m_text2->length() > 0); |
| 49 ASSERT(m_offset > 0); | 49 ASSERT(m_offset > 0); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 65 document()->markers()->copyMarkers(m_text2.get(), 0, m_offset, m_text1.get()
, 0); | 65 document()->markers()->copyMarkers(m_text2.get(), 0, m_offset, m_text1.get()
, 0); |
| 66 | 66 |
| 67 insertText1AndTrimText2(); | 67 insertText1AndTrimText2(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 void SplitTextNodeCommand::doUnapply() | 70 void SplitTextNodeCommand::doUnapply() |
| 71 { | 71 { |
| 72 if (!m_text1 || !m_text1->rendererIsEditable()) | 72 if (!m_text1 || !m_text1->rendererIsEditable()) |
| 73 return; | 73 return; |
| 74 | 74 |
| 75 ASSERT(m_text1->document() == document()); | 75 ASSERT(&m_text1->document() == document()); |
| 76 | 76 |
| 77 String prefixText = m_text1->data(); | 77 String prefixText = m_text1->data(); |
| 78 | 78 |
| 79 m_text2->insertData(0, prefixText, ASSERT_NO_EXCEPTION, DeprecatedAttachNow)
; | 79 m_text2->insertData(0, prefixText, ASSERT_NO_EXCEPTION, DeprecatedAttachNow)
; |
| 80 | 80 |
| 81 document()->markers()->copyMarkers(m_text1.get(), 0, prefixText.length(), m_
text2.get(), 0); | 81 document()->markers()->copyMarkers(m_text1.get(), 0, prefixText.length(), m_
text2.get(), 0); |
| 82 m_text1->remove(ASSERT_NO_EXCEPTION); | 82 m_text1->remove(ASSERT_NO_EXCEPTION); |
| 83 } | 83 } |
| 84 | 84 |
| 85 void SplitTextNodeCommand::doReapply() | 85 void SplitTextNodeCommand::doReapply() |
| (...skipping 19 matching lines...) Expand all Loading... |
| 105 | 105 |
| 106 #ifndef NDEBUG | 106 #ifndef NDEBUG |
| 107 void SplitTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes) | 107 void SplitTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes) |
| 108 { | 108 { |
| 109 addNodeAndDescendants(m_text1.get(), nodes); | 109 addNodeAndDescendants(m_text1.get(), nodes); |
| 110 addNodeAndDescendants(m_text2.get(), nodes); | 110 addNodeAndDescendants(m_text2.get(), nodes); |
| 111 } | 111 } |
| 112 #endif | 112 #endif |
| 113 | 113 |
| 114 } // namespace WebCore | 114 } // namespace WebCore |
| OLD | NEW |