Title: [160681] trunk/Source/WebKit2
Revision
160681
Author
[email protected]
Date
2013-12-16 17:35:02 -0800 (Mon, 16 Dec 2013)

Log Message

[WK2][iOS] WKView sends unscaled scroll position to WKContentView
https://bugs.webkit.org/show_bug.cgi?id=125819

Patch by Benjamin Poulain <[email protected]> on 2013-12-16
Reviewed by Anders Carlsson.

WKView was sending untransformed scroll coordinates to WKContentView. The scroll position
seen by WebKit was wrong when the content is scaled.

* UIProcess/API/ios/WKView.mm:
(-[WKView _didScroll]):
(-[WKView scrollViewDidEndDragging:willDecelerate:]):
(-[WKView scrollViewDidEndDecelerating:]):
(-[WKView scrollViewDidScrollToTop:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (160680 => 160681)


--- trunk/Source/WebKit2/ChangeLog	2013-12-17 01:33:05 UTC (rev 160680)
+++ trunk/Source/WebKit2/ChangeLog	2013-12-17 01:35:02 UTC (rev 160681)
@@ -1,3 +1,19 @@
+2013-12-16  Benjamin Poulain  <[email protected]>
+
+        [WK2][iOS] WKView sends unscaled scroll position to WKContentView
+        https://bugs.webkit.org/show_bug.cgi?id=125819
+
+        Reviewed by Anders Carlsson.
+
+        WKView was sending untransformed scroll coordinates to WKContentView. The scroll position
+        seen by WebKit was wrong when the content is scaled.
+
+        * UIProcess/API/ios/WKView.mm:
+        (-[WKView _didScroll]):
+        (-[WKView scrollViewDidEndDragging:willDecelerate:]):
+        (-[WKView scrollViewDidEndDecelerating:]):
+        (-[WKView scrollViewDidScrollToTop:]):
+
 2013-12-16  Brady Eidson  <[email protected]>
 
         DatabaseProcess: Plumb through messaging for the 4 basic transaction operations

Modified: trunk/Source/WebKit2/UIProcess/API/ios/WKView.mm (160680 => 160681)


--- trunk/Source/WebKit2/UIProcess/API/ios/WKView.mm	2013-12-17 01:33:05 UTC (rev 160680)
+++ trunk/Source/WebKit2/UIProcess/API/ios/WKView.mm	2013-12-17 01:35:02 UTC (rev 160681)
@@ -188,21 +188,27 @@
         _userHasChangedPageScale = YES;
 }
 
+- (void)_didScroll
+{
+    CGPoint position = [_scrollView convertPoint:[_scrollView contentOffset] toView:_contentView.get()];
+    [_contentView didScrollTo:position];
+}
+
 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
 {
     // If we're decelerating, scroll offset will be updated when scrollViewDidFinishDecelerating: is called.
     if (!decelerate)
-        [_contentView didScrollTo:scrollView.contentOffset];
+        [self _didScroll];
 }
 
 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
 {
-    [_contentView didScrollTo:scrollView.contentOffset];
+    [self _didScroll];
 }
 
 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
 {
-    [_contentView didScrollTo:scrollView.contentOffset];
+    [self _didScroll];
 }
 
 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to