OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2005 Apple Computer, 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 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 | 284 |
285 if (shouldNotInheritStyleFrom(*m_selectionToDelete.start().anchorNode())) | 285 if (shouldNotInheritStyleFrom(*m_selectionToDelete.start().anchorNode())) |
286 return; | 286 return; |
287 | 287 |
288 // Figure out the typing style in effect before the delete is done. | 288 // Figure out the typing style in effect before the delete is done. |
289 m_typingStyle = EditingStyle::create(m_selectionToDelete.start(), EditingSty
le::EditingPropertiesInEffect); | 289 m_typingStyle = EditingStyle::create(m_selectionToDelete.start(), EditingSty
le::EditingPropertiesInEffect); |
290 m_typingStyle->removeStyleAddedByNode(enclosingAnchorElement(m_selectionToDe
lete.start())); | 290 m_typingStyle->removeStyleAddedByNode(enclosingAnchorElement(m_selectionToDe
lete.start())); |
291 | 291 |
292 // If we're deleting into a Mail blockquote, save the style at end() instead
of start() | 292 // If we're deleting into a Mail blockquote, save the style at end() instead
of start() |
293 // We'll use this later in computeTypingStyleAfterDelete if we end up outsid
e of a Mail blockquote | 293 // We'll use this later in computeTypingStyleAfterDelete if we end up outsid
e of a Mail blockquote |
294 if (enclosingNodeOfType(m_selectionToDelete.start(), isMailBlockquote)) | 294 if (enclosingNodeOfType(m_selectionToDelete.start(), isMailHTMLBlockquoteEle
ment)) |
295 m_deleteIntoBlockquoteStyle = EditingStyle::create(m_selectionToDelete.e
nd()); | 295 m_deleteIntoBlockquoteStyle = EditingStyle::create(m_selectionToDelete.e
nd()); |
296 else | 296 else |
297 m_deleteIntoBlockquoteStyle = nullptr; | 297 m_deleteIntoBlockquoteStyle = nullptr; |
298 } | 298 } |
299 | 299 |
300 bool DeleteSelectionCommand::handleSpecialCaseBRDelete() | 300 bool DeleteSelectionCommand::handleSpecialCaseBRDelete() |
301 { | 301 { |
302 Node* nodeAfterUpstreamStart = m_upstreamStart.computeNodeAfterPosition(); | 302 Node* nodeAfterUpstreamStart = m_upstreamStart.computeNodeAfterPosition(); |
303 Node* nodeAfterDownstreamStart = m_downstreamStart.computeNodeAfterPosition(
); | 303 Node* nodeAfterDownstreamStart = m_downstreamStart.computeNodeAfterPosition(
); |
304 // Upstream end will appear before BR due to canonicalization | 304 // Upstream end will appear before BR due to canonicalization |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 return; | 724 return; |
725 } | 725 } |
726 | 726 |
727 // Compute the difference between the style before the delete and the style
now | 727 // Compute the difference between the style before the delete and the style
now |
728 // after the delete has been done. Set this style on the frame, so other edi
ting | 728 // after the delete has been done. Set this style on the frame, so other edi
ting |
729 // commands being composed with this one will work, and also cache it on the
command, | 729 // commands being composed with this one will work, and also cache it on the
command, |
730 // so the LocalFrame::appliedEditing can set it after the whole composite co
mmand | 730 // so the LocalFrame::appliedEditing can set it after the whole composite co
mmand |
731 // has completed. | 731 // has completed. |
732 | 732 |
733 // If we deleted into a blockquote, but are now no longer in a blockquote, u
se the alternate typing style | 733 // If we deleted into a blockquote, but are now no longer in a blockquote, u
se the alternate typing style |
734 if (m_deleteIntoBlockquoteStyle && !enclosingNodeOfType(m_endingPosition, is
MailBlockquote, CanCrossEditingBoundary)) | 734 if (m_deleteIntoBlockquoteStyle && !enclosingNodeOfType(m_endingPosition, is
MailHTMLBlockquoteElement, CanCrossEditingBoundary)) |
735 m_typingStyle = m_deleteIntoBlockquoteStyle; | 735 m_typingStyle = m_deleteIntoBlockquoteStyle; |
736 m_deleteIntoBlockquoteStyle = nullptr; | 736 m_deleteIntoBlockquoteStyle = nullptr; |
737 | 737 |
738 m_typingStyle->prepareToApplyAt(m_endingPosition); | 738 m_typingStyle->prepareToApplyAt(m_endingPosition); |
739 if (m_typingStyle->isEmpty()) | 739 if (m_typingStyle->isEmpty()) |
740 m_typingStyle = nullptr; | 740 m_typingStyle = nullptr; |
741 // This is where we've deleted all traces of a style but not a whole paragra
ph (that's handled above). | 741 // This is where we've deleted all traces of a style but not a whole paragra
ph (that's handled above). |
742 // In this case if we start typing, the new characters should have the same
style as the just deleted ones, | 742 // In this case if we start typing, the new characters should have the same
style as the just deleted ones, |
743 // but, if we change the selection, come back and start typing that style sh
ould be lost. Also see | 743 // but, if we change the selection, come back and start typing that style sh
ould be lost. Also see |
744 // preserveTypingStyle() below. | 744 // preserveTypingStyle() below. |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 visitor->trace(m_deleteIntoBlockquoteStyle); | 889 visitor->trace(m_deleteIntoBlockquoteStyle); |
890 visitor->trace(m_startRoot); | 890 visitor->trace(m_startRoot); |
891 visitor->trace(m_endRoot); | 891 visitor->trace(m_endRoot); |
892 visitor->trace(m_startTableRow); | 892 visitor->trace(m_startTableRow); |
893 visitor->trace(m_endTableRow); | 893 visitor->trace(m_endTableRow); |
894 visitor->trace(m_temporaryPlaceholder); | 894 visitor->trace(m_temporaryPlaceholder); |
895 CompositeEditCommand::trace(visitor); | 895 CompositeEditCommand::trace(visitor); |
896 } | 896 } |
897 | 897 |
898 } // namespace blink | 898 } // namespace blink |
OLD | NEW |