OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 // Now we remove markers on everything between startOfFirstWord and | 756 // Now we remove markers on everything between startOfFirstWord and |
757 // endOfLastWord. However, if an autocorrection change a single word to | 757 // endOfLastWord. However, if an autocorrection change a single word to |
758 // multiple words, we want to remove correction mark from all the resulted | 758 // multiple words, we want to remove correction mark from all the resulted |
759 // words even we only edit one of them. For example, assuming autocorrection | 759 // words even we only edit one of them. For example, assuming autocorrection |
760 // changes "avantgarde" to "avant garde", we will have CorrectionIndicator | 760 // changes "avantgarde" to "avant garde", we will have CorrectionIndicator |
761 // marker on both words and on the whitespace between them. If we then edit | 761 // marker on both words and on the whitespace between them. If we then edit |
762 // garde, we would like to remove the marker from word "avant" and whitespace | 762 // garde, we would like to remove the marker from word "avant" and whitespace |
763 // as well. So we need to get the continous range of of marker that contains | 763 // as well. So we need to get the continous range of of marker that contains |
764 // the word in question, and remove marker on that whole range. | 764 // the word in question, and remove marker on that whole range. |
765 const EphemeralRange word_range(remove_marker_start, remove_marker_end); | 765 const EphemeralRange word_range(remove_marker_start, remove_marker_end); |
766 document->Markers().RemoveMarkers(word_range, | 766 document->Markers().RemoveMarkersInRange( |
767 DocumentMarker::MisspellingMarkers()); | 767 word_range, DocumentMarker::MisspellingMarkers()); |
768 } | 768 } |
769 | 769 |
770 void SpellChecker::DidEndEditingOnTextField(Element* e) { | 770 void SpellChecker::DidEndEditingOnTextField(Element* e) { |
771 TRACE_EVENT0("blink", "SpellChecker::didEndEditingOnTextField"); | 771 TRACE_EVENT0("blink", "SpellChecker::didEndEditingOnTextField"); |
772 | 772 |
773 // Remove markers when deactivating a selection in an <input type="text"/>. | 773 // Remove markers when deactivating a selection in an <input type="text"/>. |
774 // Prevent new ones from appearing too. | 774 // Prevent new ones from appearing too. |
775 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) | 775 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) |
776 spell_check_requester_->CancelCheck(); | 776 spell_check_requester_->CancelCheck(); |
777 TextControlElement* text_control_element = ToTextControlElement(e); | 777 TextControlElement* text_control_element = ToTextControlElement(e); |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1025 return false; | 1025 return false; |
1026 } | 1026 } |
1027 | 1027 |
1028 void SpellChecker::RemoveMarkers(const EphemeralRange& range, | 1028 void SpellChecker::RemoveMarkers(const EphemeralRange& range, |
1029 DocumentMarker::MarkerTypes marker_types) { | 1029 DocumentMarker::MarkerTypes marker_types) { |
1030 DCHECK(!GetFrame().GetDocument()->NeedsLayoutTreeUpdate()); | 1030 DCHECK(!GetFrame().GetDocument()->NeedsLayoutTreeUpdate()); |
1031 | 1031 |
1032 if (range.IsNull()) | 1032 if (range.IsNull()) |
1033 return; | 1033 return; |
1034 | 1034 |
1035 GetFrame().GetDocument()->Markers().RemoveMarkers(range, marker_types); | 1035 GetFrame().GetDocument()->Markers().RemoveMarkersInRange(range, marker_types); |
1036 } | 1036 } |
1037 | 1037 |
1038 // TODO(xiaochengh): This function is only used by unit tests. We should move it | 1038 // TODO(xiaochengh): This function is only used by unit tests. We should move it |
1039 // to IdleSpellCheckCallback and modify unit tests to cope with idle time spell | 1039 // to IdleSpellCheckCallback and modify unit tests to cope with idle time spell |
1040 // checker. | 1040 // checker. |
1041 void SpellChecker::CancelCheck() { | 1041 void SpellChecker::CancelCheck() { |
1042 spell_check_requester_->CancelCheck(); | 1042 spell_check_requester_->CancelCheck(); |
1043 } | 1043 } |
1044 | 1044 |
1045 void SpellChecker::DocumentAttached(Document* document) { | 1045 void SpellChecker::DocumentAttached(Document* document) { |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1197 if (!input.IsFocusedElementInDocument()) | 1197 if (!input.IsFocusedElementInDocument()) |
1198 return false; | 1198 return false; |
1199 } | 1199 } |
1200 } | 1200 } |
1201 HTMLElement* element = | 1201 HTMLElement* element = |
1202 Traversal<HTMLElement>::FirstAncestorOrSelf(*position.AnchorNode()); | 1202 Traversal<HTMLElement>::FirstAncestorOrSelf(*position.AnchorNode()); |
1203 return element && element->IsSpellCheckingEnabled(); | 1203 return element && element->IsSpellCheckingEnabled(); |
1204 } | 1204 } |
1205 | 1205 |
1206 } // namespace blink | 1206 } // namespace blink |
OLD | NEW |