Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(596)

Unified Diff: Source/web/WebViewImpl.cpp

Issue 177903010: Expose the selection root bounds in WebView. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/web/WebViewImpl.cpp
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
index 3c85d43798bb3be0d6975084f87b2a395a3f37d2..d638c750b7714f7edc71adbbf736e453f3c8277c 100644
--- a/Source/web/WebViewImpl.cpp
+++ b/Source/web/WebViewImpl.cpp
@@ -2144,6 +2144,31 @@ bool WebViewImpl::selectionBounds(WebRect& anchor, WebRect& focus) const
return true;
}
+bool WebViewImpl::selectionRootBounds(WebRect& bounds) const
+{
+ const LocalFrame* frame = focusedWebCoreFrame();
+ if (!frame)
+ return false;
+
+ Element* root = frame->selection().rootEditableElementOrDocumentElement();
+ if (!root)
+ return false;
+
+ // Special casing textarea because of http://crbug.com/348945
+ if (root->shadowHost()
tkent 2014/03/05 04:48:10 nit: You don't need to wrap this line.
mlamouri (slow - plz ping) 2014/03/05 09:52:45 Done.
+ && root->shadowHost()->hasTagName(HTMLNames::textareaTag)) {
+ root = root->shadowHost();
+ }
+
+ IntRect boundingBox = root->pixelSnappedBoundingBox();
+ boundingBox =
tkent 2014/03/05 04:48:10 nit: You don't need to wrap this line.
mlamouri (slow - plz ping) 2014/03/05 09:52:45 Done.
+ root->document().frame()->view()->contentsToWindow(boundingBox);
+ boundingBox.scale(pageScaleFactor());
+ bounds = boundingBox;
+
+ return true;
+}
+
InputMethodContext* WebViewImpl::inputMethodContext()
{
if (!m_imeAcceptEvents)
« no previous file with comments | « Source/web/WebViewImpl.h ('k') | public/web/WebWidget.h » ('j') | public/web/WebWidget.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698