Changeset 141470 in webkit


Ignore:
Timestamp:
Jan 31, 2013 12:55:33 PM (11 years ago)
Author:
commit-queue@webkit.org
Message:

[chromium] Make selection handling work in applyPageScaleInCompositor mode
https://bugs.webkit.org/show_bug.cgi?id=107831

Patch by Chris Hopman <cjhopman@chromium.org> on 2013-01-31
Reviewed by Ryosuke Niwa.

These functions expect a window point. When in
applyPageScaleFactorInCompositor mode, the points need to be unscaled
by the page scale factor.

  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::selectRange):
(WebKit::WebFrameImpl::moveCaretSelectionTowardsWindowPoint):

Location:
trunk/Source/WebKit/chromium
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/chromium/ChangeLog

    r141461 r141470  
     12013-01-31  Chris Hopman  <cjhopman@chromium.org>
     2
     3        [chromium] Make selection handling work in applyPageScaleInCompositor mode
     4        https://bugs.webkit.org/show_bug.cgi?id=107831
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        These functions expect a window point. When in
     9        applyPageScaleFactorInCompositor mode, the points need to be unscaled
     10        by the page scale factor.
     11
     12        * src/WebFrameImpl.cpp:
     13        (WebKit::WebFrameImpl::selectRange):
     14        (WebKit::WebFrameImpl::moveCaretSelectionTowardsWindowPoint):
     15
    1162013-01-31  Tom Sepez  <tsepez@chromium.org>
    217
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp

    r141371 r141470  
    13841384void WebFrameImpl::selectRange(const WebPoint& base, const WebPoint& extent)
    13851385{
    1386     VisiblePosition basePosition = visiblePositionForWindowPoint(base);
    1387     VisiblePosition extentPosition = visiblePositionForWindowPoint(extent);
     1386    IntPoint unscaledBase = base;
     1387    IntPoint unscaledExtent = extent;
     1388    if (frame()->page()->settings()->applyPageScaleFactorInCompositor()) {
     1389        unscaledExtent.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
     1390        unscaledBase.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
     1391    }
     1392    VisiblePosition basePosition = visiblePositionForWindowPoint(unscaledBase);
     1393    VisiblePosition extentPosition = visiblePositionForWindowPoint(unscaledExtent);
    13881394    VisibleSelection newSelection = VisibleSelection(basePosition, extentPosition);
    13891395    if (frame()->selection()->shouldChangeSelection(newSelection))
     
    13991405void WebFrameImpl::moveCaretSelectionTowardsWindowPoint(const WebPoint& point)
    14001406{
     1407    IntPoint unscaledPoint(point);
     1408    if (frame()->page()->settings()->applyPageScaleFactorInCompositor())
     1409        unscaledPoint.scale(1 / view()->pageScaleFactor(), 1 / view()->pageScaleFactor());
     1410
    14011411    Element* editable = frame()->selection()->rootEditableElement();
    1402     IntPoint contentsPoint = frame()->view()->windowToContents(IntPoint(point));
     1412    IntPoint contentsPoint = frame()->view()->windowToContents(unscaledPoint);
    14031413    LayoutPoint localPoint(editable->convertFromPage(contentsPoint));
    14041414    VisiblePosition position = editable->renderer()->positionForPoint(localPoint);
Note: See TracChangeset for help on using the changeset viewer.