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 1252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 | 1263 |
1264 RefPtr<Node> shadowTreeRoot = referenceRange && referenceRange->startContain
er() ? referenceRange->startContainer()->nonBoundaryShadowTreeRootNode() : 0; | 1264 RefPtr<Node> shadowTreeRoot = referenceRange && referenceRange->startContain
er() ? referenceRange->startContainer()->nonBoundaryShadowTreeRootNode() : 0; |
1265 if (shadowTreeRoot) { | 1265 if (shadowTreeRoot) { |
1266 if (forward) | 1266 if (forward) |
1267 searchRange->setEnd(shadowTreeRoot.get(), shadowTreeRoot->childNodeC
ount()); | 1267 searchRange->setEnd(shadowTreeRoot.get(), shadowTreeRoot->childNodeC
ount()); |
1268 else | 1268 else |
1269 searchRange->setStart(shadowTreeRoot.get(), 0); | 1269 searchRange->setStart(shadowTreeRoot.get(), 0); |
1270 } | 1270 } |
1271 | 1271 |
1272 RefPtr<Range> resultRange(findPlainText(searchRange.get(), target, options))
; | 1272 RefPtr<Range> resultRange(findPlainText(searchRange.get(), target, options))
; |
1273 // If we started in the reference range and the found range exactly matches
the reference range, find again. | |
1274 // Build a selection with the found range to remove collapsed whitespace. | |
1275 // Compare ranges instead of selection objects to ignore the way that the cu
rrent selection was made. | |
1276 if (startInReferenceRange && areRangesEqual(VisibleSelection(resultRange.get
()).toNormalizedRange().get(), referenceRange)) { | |
1277 searchRange = rangeOfContents(m_frame.document()); | |
1278 if (forward) | |
1279 searchRange->setStart(referenceRange->endPosition()); | |
1280 else | |
1281 searchRange->setEnd(referenceRange->startPosition()); | |
1282 | |
1283 if (shadowTreeRoot) { | |
1284 if (forward) | |
1285 searchRange->setEnd(shadowTreeRoot.get(), shadowTreeRoot->childN
odeCount()); | |
1286 else | |
1287 searchRange->setStart(shadowTreeRoot.get(), 0); | |
1288 } | |
1289 | |
1290 resultRange = findPlainText(searchRange.get(), target, options); | |
1291 } | |
1292 | 1273 |
1293 // If nothing was found in the shadow tree, search in main content following
the shadow tree. | 1274 // If nothing was found in the shadow tree, search in main content following
the shadow tree. |
1294 if (resultRange->collapsed(ASSERT_NO_EXCEPTION) && shadowTreeRoot) { | 1275 if (resultRange->collapsed(ASSERT_NO_EXCEPTION) && shadowTreeRoot) { |
1295 searchRange = rangeOfContents(m_frame.document()); | 1276 searchRange = rangeOfContents(m_frame.document()); |
1296 if (forward) | 1277 if (forward) |
1297 searchRange->setStartAfter(shadowTreeRoot->shadowHost()); | 1278 searchRange->setStartAfter(shadowTreeRoot->shadowHost()); |
1298 else | 1279 else |
1299 searchRange->setEndBefore(shadowTreeRoot->shadowHost()); | 1280 searchRange->setEndBefore(shadowTreeRoot->shadowHost()); |
1300 | 1281 |
1301 resultRange = findPlainText(searchRange.get(), target, options); | 1282 resultRange = findPlainText(searchRange.get(), target, options); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1340 return spellChecker().isContinuousSpellCheckingEnabled(); | 1321 return spellChecker().isContinuousSpellCheckingEnabled(); |
1341 } | 1322 } |
1342 | 1323 |
1343 void Editor::toggleOverwriteModeEnabled() | 1324 void Editor::toggleOverwriteModeEnabled() |
1344 { | 1325 { |
1345 m_overwriteModeEnabled = !m_overwriteModeEnabled; | 1326 m_overwriteModeEnabled = !m_overwriteModeEnabled; |
1346 frame().selection().setShouldShowBlockCursor(m_overwriteModeEnabled); | 1327 frame().selection().setShouldShowBlockCursor(m_overwriteModeEnabled); |
1347 } | 1328 } |
1348 | 1329 |
1349 } // namespace WebCore | 1330 } // namespace WebCore |
OLD | NEW |