Title: [97989] trunk/Source/WebCore
Revision
97989
Author
kenn...@webkit.org
Date
2011-10-20 09:48:35 -0700 (Thu, 20 Oct 2011)

Log Message

When user is panning with the tiled backing store, the page
isn't notified about the scroll position change
https://bugs.webkit.org/show_bug.cgi?id=70495

Reviewed by Simon Hausmann.

When using the tiled backing store the UI handles scrolling,
and sends setFixedVisibleContentRect after panning/scale ends.

If we actually changed position we need to send the scroll DOM event.

Covered by existing tests, though we are not testing the tiled backing store yet.

* page/FrameView.cpp:
(WebCore::FrameView::setFixedVisibleContentRect):
* page/FrameView.h:
* platform/ScrollView.h:
(WebCore::ScrollView::setFixedVisibleContentRect):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (97988 => 97989)


--- trunk/Source/WebCore/ChangeLog	2011-10-20 16:45:30 UTC (rev 97988)
+++ trunk/Source/WebCore/ChangeLog	2011-10-20 16:48:35 UTC (rev 97989)
@@ -1,3 +1,24 @@
+2011-10-20  Kenneth Rohde Christiansen  <kenn...@webkit.org>
+
+        When user is panning with the tiled backing store, the page
+        isn't notified about the scroll position change
+        https://bugs.webkit.org/show_bug.cgi?id=70495
+
+        Reviewed by Simon Hausmann.
+
+        When using the tiled backing store the UI handles scrolling,
+        and sends setFixedVisibleContentRect after panning/scale ends.
+
+        If we actually changed position we need to send the scroll DOM event.
+
+        Covered by existing tests, though we are not testing the tiled backing store yet.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setFixedVisibleContentRect):
+        * page/FrameView.h:
+        * platform/ScrollView.h:
+        (WebCore::ScrollView::setFixedVisibleContentRect):
+
 2011-10-20  John Knottenbelt  <jknot...@chromium.org>
 
         Touch events should take page scale into account

Modified: trunk/Source/WebCore/page/FrameView.cpp (97988 => 97989)


--- trunk/Source/WebCore/page/FrameView.cpp	2011-10-20 16:45:30 UTC (rev 97988)
+++ trunk/Source/WebCore/page/FrameView.cpp	2011-10-20 16:48:35 UTC (rev 97989)
@@ -1676,6 +1676,15 @@
     m_inProgrammaticScroll = wasInProgrammaticScroll;
 }
 
+void FrameView::setFixedVisibleContentRect(const IntRect& visibleContentRect)
+{
+    IntSize offset = scrollOffset();
+    ScrollView::setFixedVisibleContentRect(visibleContentRect);
+    if (offset != scrollOffset())
+        scrollPositionChanged();
+    frame()->loader()->client()->didChangeScrollOffset();
+}
+
 void FrameView::scrollPositionChangedViaPlatformWidget()
 {
     repaintFixedElementsAfterScrolling();

Modified: trunk/Source/WebCore/page/FrameView.h (97988 => 97989)


--- trunk/Source/WebCore/page/FrameView.h	2011-10-20 16:45:30 UTC (rev 97988)
+++ trunk/Source/WebCore/page/FrameView.h	2011-10-20 16:48:35 UTC (rev 97989)
@@ -165,6 +165,7 @@
 
     virtual LayoutRect windowResizerRect() const;
 
+    virtual void setFixedVisibleContentRect(const IntRect&) OVERRIDE;
     void setScrollPosition(const LayoutPoint&);
     void scrollPositionChangedViaPlatformWidget();
     virtual void repaintFixedElementsAfterScrolling();

Modified: trunk/Source/WebCore/platform/ScrollView.h (97988 => 97989)


--- trunk/Source/WebCore/platform/ScrollView.h	2011-10-20 16:45:30 UTC (rev 97988)
+++ trunk/Source/WebCore/platform/ScrollView.h	2011-10-20 16:48:35 UTC (rev 97989)
@@ -145,7 +145,7 @@
     // the setFixedVisibleContentRect instead for the mainframe, though this must be updated manually, e.g just before resuming the page
     // which usually will happen when panning, pinching and rotation ends, or when scale or position are changed manually.
     virtual IntRect visibleContentRect(bool includeScrollbars = false) const;
-    void setFixedVisibleContentRect(const IntRect& visibleContentRect) { m_fixedVisibleContentRect = visibleContentRect; }
+    virtual void setFixedVisibleContentRect(const IntRect& visibleContentRect) { m_fixedVisibleContentRect = visibleContentRect; }
     LayoutUnit visibleWidth() const { return visibleContentRect().width(); }
     LayoutUnit visibleHeight() const { return visibleContentRect().height(); }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to