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