summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/jni/WebViewCore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/android/jni/WebViewCore.cpp')
-rw-r--r--Source/WebKit/android/jni/WebViewCore.cpp14
1 files changed, 2 insertions, 12 deletions
diff --git a/Source/WebKit/android/jni/WebViewCore.cpp b/Source/WebKit/android/jni/WebViewCore.cpp
index 43b0f1d..fd1a833 100644
--- a/Source/WebKit/android/jni/WebViewCore.cpp
+++ b/Source/WebKit/android/jni/WebViewCore.cpp
@@ -1811,20 +1811,10 @@ SelectText* WebViewCore::createSelectText(const VisibleSelection& selection)
int startOffset = node == startContainer ? range->startOffset() : 0;
int endOffset = node == endContainer ? range->endOffset() : numeric_limits<int>::max();
LayerAndroid* layer = 0;
- int layerId = platformLayerIdFromNode(node, &layer);
- SkRegion* region = selectTextContainer->getHightlightRegionsForLayer(layerId);
- bool needsSet = false;
- if (!region)
- selectTextContainer->setHighlightRegionsForLayer(layerId, region = new SkRegion());
+ platformLayerIdFromNode(node, &layer);
Vector<IntRect> rects;
renderText->absoluteRectsForRange(rects, startOffset, endOffset, true);
- IntPoint offset;
- layerToAbsoluteOffset(layer, offset);
- for (size_t i = 0; i < rects.size(); i++) {
- IntRect& r = rects.at(i);
- r.move(-offset.x(), -offset.y());
- region->op(r.x(), r.y(), r.maxX(), r.maxY(), SkRegion::kUnion_Op);
- }
+ selectTextContainer->addHighlightRegion(layer, rects);
}
IntRect caretRect;