| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
reserved. |
| 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 8 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 8 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 | 698 |
| 699 (*marker)->setActiveMatch(active); | 699 (*marker)->setActiveMatch(active); |
| 700 docDirty = true; | 700 docDirty = true; |
| 701 } | 701 } |
| 702 | 702 |
| 703 // repaint the affected node | 703 // repaint the affected node |
| 704 if (docDirty && node->renderer()) | 704 if (docDirty && node->renderer()) |
| 705 node->renderer()->setShouldDoFullPaintInvalidation(); | 705 node->renderer()->setShouldDoFullPaintInvalidation(); |
| 706 } | 706 } |
| 707 | 707 |
| 708 bool DocumentMarkerController::hasMarkers(Range* range, DocumentMarker::MarkerTy
pes markerTypes) | |
| 709 { | |
| 710 if (!possiblyHasMarkers(markerTypes)) | |
| 711 return false; | |
| 712 ASSERT(!m_markers.isEmpty()); | |
| 713 | |
| 714 Node* startContainer = range->startContainer(); | |
| 715 ASSERT(startContainer); | |
| 716 Node* endContainer = range->endContainer(); | |
| 717 ASSERT(endContainer); | |
| 718 | |
| 719 Node* pastLastNode = range->pastLastNode(); | |
| 720 for (Node* node = range->firstNode(); node != pastLastNode; node = NodeTrave
rsal::next(*node)) { | |
| 721 for (const DocumentMarker* marker : markersFor(node)) { | |
| 722 if (!markerTypes.contains(marker->type())) | |
| 723 continue; | |
| 724 if (node == startContainer && marker->endOffset() <= static_cast<uns
igned>(range->startOffset())) | |
| 725 continue; | |
| 726 if (node == endContainer && marker->startOffset() >= static_cast<uns
igned>(range->endOffset())) | |
| 727 continue; | |
| 728 return true; | |
| 729 } | |
| 730 } | |
| 731 return false; | |
| 732 } | |
| 733 | |
| 734 #ifndef NDEBUG | 708 #ifndef NDEBUG |
| 735 void DocumentMarkerController::showMarkers() const | 709 void DocumentMarkerController::showMarkers() const |
| 736 { | 710 { |
| 737 fprintf(stderr, "%d nodes have markers:\n", m_markers.size()); | 711 fprintf(stderr, "%d nodes have markers:\n", m_markers.size()); |
| 738 MarkerMap::const_iterator end = m_markers.end(); | 712 MarkerMap::const_iterator end = m_markers.end(); |
| 739 for (MarkerMap::const_iterator nodeIterator = m_markers.begin(); nodeIterato
r != end; ++nodeIterator) { | 713 for (MarkerMap::const_iterator nodeIterator = m_markers.begin(); nodeIterato
r != end; ++nodeIterator) { |
| 740 const Node* node = nodeIterator->key; | 714 const Node* node = nodeIterator->key; |
| 741 fprintf(stderr, "%p", node); | 715 fprintf(stderr, "%p", node); |
| 742 MarkerLists* markers = m_markers.get(node); | 716 MarkerLists* markers = m_markers.get(node); |
| 743 for (size_t markerListIndex = 0; markerListIndex < DocumentMarker::Marke
rTypeIndexesCount; ++markerListIndex) { | 717 for (size_t markerListIndex = 0; markerListIndex < DocumentMarker::Marke
rTypeIndexesCount; ++markerListIndex) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 755 | 729 |
| 756 } // namespace blink | 730 } // namespace blink |
| 757 | 731 |
| 758 #ifndef NDEBUG | 732 #ifndef NDEBUG |
| 759 void showDocumentMarkers(const blink::DocumentMarkerController* controller) | 733 void showDocumentMarkers(const blink::DocumentMarkerController* controller) |
| 760 { | 734 { |
| 761 if (controller) | 735 if (controller) |
| 762 controller->showMarkers(); | 736 controller->showMarkers(); |
| 763 } | 737 } |
| 764 #endif | 738 #endif |
| OLD | NEW |