diff options
author | George Mount <mount@google.com> | 2012-06-14 09:59:34 -0700 |
---|---|---|
committer | George Mount <mount@google.com> | 2012-06-18 14:22:41 -0700 |
commit | 0f52bbcbd939dd6fcbb100e4e463456c5343a263 (patch) | |
tree | 6616b3b3487ac9bf3a2a08434659fa31b9b381e4 /Source/WebKit/android/nav | |
parent | 0634b6f6429e4e30beddf85239da061726861484 (diff) | |
download | external_webkit-0f52bbcbd939dd6fcbb100e4e463456c5343a263.zip external_webkit-0f52bbcbd939dd6fcbb100e4e463456c5343a263.tar.gz external_webkit-0f52bbcbd939dd6fcbb100e4e463456c5343a263.tar.bz2 |
Clip selected text within scrollable edit to the edit boundary.
Bug 6666415
Change-Id: Ie19e6bc3eedcbb5c9eb5791ac4b1f55149dcdb72
Diffstat (limited to 'Source/WebKit/android/nav')
-rw-r--r-- | Source/WebKit/android/nav/DrawExtra.cpp | 8 | ||||
-rw-r--r-- | Source/WebKit/android/nav/DrawExtra.h | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/Source/WebKit/android/nav/DrawExtra.cpp b/Source/WebKit/android/nav/DrawExtra.cpp index 2f57dc1..a7d686c 100644 --- a/Source/WebKit/android/nav/DrawExtra.cpp +++ b/Source/WebKit/android/nav/DrawExtra.cpp @@ -52,7 +52,8 @@ SkRegion* RegionLayerDrawExtra::getHighlightRegionsForLayer(const LayerAndroid* } void RegionLayerDrawExtra::addHighlightRegion(const LayerAndroid* layer, const Vector<IntRect>& rects, - const IntPoint& additionalOffset) + const IntPoint& additionalOffset, + const IntRect& clipRect) { if (rects.isEmpty()) return; @@ -66,6 +67,11 @@ void RegionLayerDrawExtra::addHighlightRegion(const LayerAndroid* layer, const V WebViewCore::layerToAbsoluteOffset(layer, offset); for (size_t i = 0; i < rects.size(); i++) { IntRect r = rects.at(i); + if (!clipRect.isEmpty()) { + r.intersect(clipRect); + if (r.isEmpty()) + continue; // don't add it to the region + } r.move(-offset.x(), -offset.y()); region->op(r.x(), r.y(), r.maxX(), r.maxY(), SkRegion::kUnion_Op); } diff --git a/Source/WebKit/android/nav/DrawExtra.h b/Source/WebKit/android/nav/DrawExtra.h index cc94476..1850b6b 100644 --- a/Source/WebKit/android/nav/DrawExtra.h +++ b/Source/WebKit/android/nav/DrawExtra.h @@ -65,7 +65,8 @@ public: virtual ~RegionLayerDrawExtra(); void addHighlightRegion(const LayerAndroid* layer, const Vector<IntRect>& rects, - const IntPoint& additionalOffset = IntPoint()); + const IntPoint& additionalOffset = IntPoint(), + const IntRect& clipRect = IntRect()); virtual void draw(SkCanvas*, LayerAndroid*); virtual void drawGL(GLExtras*, const LayerAndroid*); |