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

Unified Diff: Source/web/WebLocalFrameImpl.cpp

Issue 967213004: Removed FrameView's windowToContents and contentsToWindow methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 9 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
« no previous file with comments | « Source/web/WebLocalFrameImpl.h ('k') | Source/web/WebPluginContainerImpl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/WebLocalFrameImpl.cpp
diff --git a/Source/web/WebLocalFrameImpl.cpp b/Source/web/WebLocalFrameImpl.cpp
index 27e87b7c9cf9ec7a98cfa0b16bda313a0f96ed76..c4e2a58fb8750de253e6424681f1b72fd974c613 100644
--- a/Source/web/WebLocalFrameImpl.cpp
+++ b/Source/web/WebLocalFrameImpl.cpp
@@ -1055,7 +1055,7 @@ WebRange WebLocalFrameImpl::markedRange() const
return frame()->inputMethodController().compositionRange();
}
-bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned length, WebRect& rect) const
+bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned length, WebRect& rectInViewport) const
{
if ((location + length < location) && (location + length))
length = 0;
@@ -1066,17 +1066,17 @@ bool WebLocalFrameImpl::firstRectForCharacterRange(unsigned location, unsigned l
if (!range)
return false;
IntRect intRect = frame()->editor().firstRectForRange(range.get());
- rect = WebRect(intRect);
- rect = frame()->view()->contentsToWindow(rect);
+ rectInViewport = WebRect(intRect);
+ rectInViewport = frame()->view()->contentsToViewport(rectInViewport);
return true;
}
-size_t WebLocalFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const
+size_t WebLocalFrameImpl::characterIndexForPoint(const WebPoint& pointInViewport) const
{
if (!frame())
return kNotFound;
- IntPoint point = frame()->view()->windowToContents(webPoint);
+ IntPoint point = frame()->view()->viewportToContents(pointInViewport);
HitTestResult result = frame()->eventHandler().hitTestResultAtPoint(point, HitTestRequest::ReadOnly | HitTestRequest::Active);
RefPtrWillBeRawPtr<Range> range = frame()->rangeForPoint(result.roundedPointInInnerNodeFrame());
if (!range)
@@ -1219,9 +1219,9 @@ bool WebLocalFrameImpl::selectWordAroundCaret()
return frame()->selection().selectWordAroundPosition(selection.selection().visibleStart());
}
-void WebLocalFrameImpl::selectRange(const WebPoint& base, const WebPoint& extent)
+void WebLocalFrameImpl::selectRange(const WebPoint& baseInViewport, const WebPoint& extentInViewport)
{
- moveRangeSelection(base, extent);
+ moveRangeSelection(baseInViewport, extentInViewport);
}
void WebLocalFrameImpl::selectRange(const WebRange& webRange)
@@ -1230,29 +1230,32 @@ void WebLocalFrameImpl::selectRange(const WebRange& webRange)
frame()->selection().setSelectedRange(range.get(), VP_DEFAULT_AFFINITY, FrameSelection::NonDirectional, NotUserTriggered);
}
-void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& point, WebFrame::TextGranularity granularity)
+void WebLocalFrameImpl::moveRangeSelectionExtent(const WebPoint& pointInViewport, WebFrame::TextGranularity granularity)
{
blink::TextGranularity blinkGranularity = blink::CharacterGranularity;
if (granularity == WebFrame::WordGranularity)
blinkGranularity = blink::WordGranularity;
- frame()->selection().moveRangeSelectionExtent(visiblePositionForWindowPoint(point), blinkGranularity);
+ frame()->selection().moveRangeSelectionExtent(visiblePositionForViewportPoint(pointInViewport), blinkGranularity);
}
-void WebLocalFrameImpl::moveRangeSelection(const WebPoint& base, const WebPoint& extent, WebFrame::TextGranularity granularity)
+void WebLocalFrameImpl::moveRangeSelection(const WebPoint& baseInViewport, const WebPoint& extentInViewport, WebFrame::TextGranularity granularity)
{
blink::TextGranularity blinkGranularity = blink::CharacterGranularity;
if (granularity == WebFrame::WordGranularity)
blinkGranularity = blink::WordGranularity;
- frame()->selection().moveRangeSelection(visiblePositionForWindowPoint(base), visiblePositionForWindowPoint(extent), blinkGranularity);
+ frame()->selection().moveRangeSelection(
+ visiblePositionForViewportPoint(baseInViewport),
+ visiblePositionForViewportPoint(extentInViewport),
+ blinkGranularity);
}
-void WebLocalFrameImpl::moveCaretSelection(const WebPoint& point)
+void WebLocalFrameImpl::moveCaretSelection(const WebPoint& pointInViewport)
{
Element* editable = frame()->selection().rootEditableElement();
if (!editable)
return;
- VisiblePosition position = visiblePositionForWindowPoint(point);
+ VisiblePosition position = visiblePositionForViewportPoint(pointInViewport);
frame()->selection().moveTo(position, UserTriggered);
}
@@ -1291,17 +1294,10 @@ void WebLocalFrameImpl::setCaretVisible(bool visible)
frame()->selection().setCaretVisible(visible);
}
-VisiblePosition WebLocalFrameImpl::visiblePositionForWindowPoint(const WebPoint& point)
+VisiblePosition WebLocalFrameImpl::visiblePositionForViewportPoint(const WebPoint& pointInViewport)
{
- // FIXME(bokan): crbug.com/371902 - These scale/pinch transforms shouldn't
- // be ad hoc and explicit.
- PinchViewport& pinchViewport = frame()->page()->frameHost().pinchViewport();
- FloatPoint unscaledPoint(point);
- unscaledPoint.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
- unscaledPoint.moveBy(pinchViewport.visibleRect().location());
-
HitTestRequest request = HitTestRequest::Move | HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping;
- HitTestResult result(frame()->view()->windowToContents(roundedIntPoint(unscaledPoint)));
+ HitTestResult result(frame()->view()->viewportToContents(pointInViewport));
frame()->document()->layoutView()->layer()->hitTest(request, result);
if (Node* node = result.innerNode())
« no previous file with comments | « Source/web/WebLocalFrameImpl.h ('k') | Source/web/WebPluginContainerImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698