| 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 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 badGrammarPhrase = foundItem; | 244 badGrammarPhrase = foundItem; |
| 245 grammarPhraseOffset = foundOffset; | 245 grammarPhraseOffset = foundOffset; |
| 246 } | 246 } |
| 247 } else { | 247 } else { |
| 248 misspelledWord = TextCheckingHelper(spellCheckerClient(), spellingSearch
Range).findFirstMisspelling(misspellingOffset, false, firstMisspellingRange); | 248 misspelledWord = TextCheckingHelper(spellCheckerClient(), spellingSearch
Range).findFirstMisspelling(misspellingOffset, false, firstMisspellingRange); |
| 249 grammarSearchRange = spellingSearchRange->cloneRange(); | 249 grammarSearchRange = spellingSearchRange->cloneRange(); |
| 250 if (!misspelledWord.isEmpty()) { | 250 if (!misspelledWord.isEmpty()) { |
| 251 // Stop looking at start of next misspelled word | 251 // Stop looking at start of next misspelled word |
| 252 CharacterIterator chars(grammarSearchRange.get()); | 252 CharacterIterator chars(grammarSearchRange.get()); |
| 253 chars.advance(misspellingOffset); | 253 chars.advance(misspellingOffset); |
| 254 grammarSearchRange->setEnd(chars.range()->startContainer(), chars.ra
nge()->startOffset(), IGNORE_EXCEPTION); | 254 grammarSearchRange->setEnd(chars.startContainer(), chars.startOffset
(), IGNORE_EXCEPTION); |
| 255 } | 255 } |
| 256 | 256 |
| 257 if (isGrammarCheckingEnabled()) | 257 if (isGrammarCheckingEnabled()) |
| 258 badGrammarPhrase = TextCheckingHelper(spellCheckerClient(), grammarS
earchRange).findFirstBadGrammar(grammarDetail, grammarPhraseOffset, false); | 258 badGrammarPhrase = TextCheckingHelper(spellCheckerClient(), grammarS
earchRange).findFirstBadGrammar(grammarDetail, grammarPhraseOffset, false); |
| 259 } | 259 } |
| 260 | 260 |
| 261 // If we found neither bad grammar nor a misspelled word, wrap and try again
(but don't bother if we started at the beginning of the | 261 // If we found neither bad grammar nor a misspelled word, wrap and try again
(but don't bother if we started at the beginning of the |
| 262 // block rather than at a selection). | 262 // block rather than at a selection). |
| 263 if (startedWithSelection && !misspelledWord && !badGrammarPhrase) { | 263 if (startedWithSelection && !misspelledWord && !badGrammarPhrase) { |
| 264 spellingSearchRange->setStart(topNode, 0, IGNORE_EXCEPTION); | 264 spellingSearchRange->setStart(topNode, 0, IGNORE_EXCEPTION); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 275 badGrammarPhrase = foundItem; | 275 badGrammarPhrase = foundItem; |
| 276 grammarPhraseOffset = foundOffset; | 276 grammarPhraseOffset = foundOffset; |
| 277 } | 277 } |
| 278 } else { | 278 } else { |
| 279 misspelledWord = TextCheckingHelper(spellCheckerClient(), spellingSe
archRange).findFirstMisspelling(misspellingOffset, false, firstMisspellingRange)
; | 279 misspelledWord = TextCheckingHelper(spellCheckerClient(), spellingSe
archRange).findFirstMisspelling(misspellingOffset, false, firstMisspellingRange)
; |
| 280 grammarSearchRange = spellingSearchRange->cloneRange(); | 280 grammarSearchRange = spellingSearchRange->cloneRange(); |
| 281 if (!misspelledWord.isEmpty()) { | 281 if (!misspelledWord.isEmpty()) { |
| 282 // Stop looking at start of next misspelled word | 282 // Stop looking at start of next misspelled word |
| 283 CharacterIterator chars(grammarSearchRange.get()); | 283 CharacterIterator chars(grammarSearchRange.get()); |
| 284 chars.advance(misspellingOffset); | 284 chars.advance(misspellingOffset); |
| 285 grammarSearchRange->setEnd(chars.range()->startContainer(), char
s.range()->startOffset(), IGNORE_EXCEPTION); | 285 grammarSearchRange->setEnd(chars.startContainer(), chars.startOf
fset(), IGNORE_EXCEPTION); |
| 286 } | 286 } |
| 287 | 287 |
| 288 if (isGrammarCheckingEnabled()) | 288 if (isGrammarCheckingEnabled()) |
| 289 badGrammarPhrase = TextCheckingHelper(spellCheckerClient(), gram
marSearchRange).findFirstBadGrammar(grammarDetail, grammarPhraseOffset, false); | 289 badGrammarPhrase = TextCheckingHelper(spellCheckerClient(), gram
marSearchRange).findFirstBadGrammar(grammarDetail, grammarPhraseOffset, false); |
| 290 } | 290 } |
| 291 } | 291 } |
| 292 | 292 |
| 293 if (!badGrammarPhrase.isEmpty()) { | 293 if (!badGrammarPhrase.isEmpty()) { |
| 294 // We found bad grammar. Since we only searched for bad grammar up to th
e first misspelled word, the bad grammar | 294 // We found bad grammar. Since we only searched for bad grammar up to th
e first misspelled word, the bad grammar |
| 295 // takes precedence and we ignore any potential misspelled word. Select
the grammar detail, update the spelling | 295 // takes precedence and we ignore any potential misspelled word. Select
the grammar detail, update the spelling |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 927 } | 927 } |
| 928 | 928 |
| 929 void SpellChecker::requestTextChecking(const Element& element) | 929 void SpellChecker::requestTextChecking(const Element& element) |
| 930 { | 930 { |
| 931 RefPtrWillBeRawPtr<Range> rangeToCheck = rangeOfContents(const_cast<Element*
>(&element)); | 931 RefPtrWillBeRawPtr<Range> rangeToCheck = rangeOfContents(const_cast<Element*
>(&element)); |
| 932 m_spellCheckRequester->requestCheckingFor(SpellCheckRequest::create(TextChec
kingTypeSpelling | TextCheckingTypeGrammar, TextCheckingProcessBatch, rangeToChe
ck, rangeToCheck)); | 932 m_spellCheckRequester->requestCheckingFor(SpellCheckRequest::create(TextChec
kingTypeSpelling | TextCheckingTypeGrammar, TextCheckingProcessBatch, rangeToChe
ck, rangeToCheck)); |
| 933 } | 933 } |
| 934 | 934 |
| 935 | 935 |
| 936 } // namespace blink | 936 } // namespace blink |
| OLD | NEW |