[Webkit-unassigned] [Bug 73350] [chromium] Allow scrolling non-root layers in the compositor thread
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Dec 1 11:24:45 PST 2011
https://bugs.webkit.org/show_bug.cgi?id=73350
--- Comment #5 from Adrienne Walker <enne at google.com> 2011-12-01 11:24:45 PST ---
(From update of attachment 117426)
View in context: https://bugs.webkit.org/attachment.cgi?id=117426&action=review
> Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:302
> + layer->setMaxScrollPosition(m_maxScrollPosition);
How does this interact with CCLayerTreeHostImpl::updateMaxScrollPosition calculating and overwriting the max scroll independently on the impl thread, taking page scale into account? This patch probably needs a test where page scale delta != 1.
> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:313
> + if (!layerImpl->bounds().isEmpty()) {
> + IntPoint contentPoint(layerImpl->screenSpaceTransform().inverse().mapPoint(windowPoint));
> + if (!IntRect(IntPoint::zero(), layerImpl->bounds()).contains(contentPoint))
> + return 0;
> + }
Maybe I'm misreading this, but if a layer has valid bounds but the point is not contained, then all of its children are skipped? The layer tree is not a bounding box hierarchy, so I think you still need to check the children. Can you add a test for this case?
> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:350
> + // Reset the pending delta completely to zero if the layer was able to move in that direction. This is
> + // to ensure it is possible to scroll exactly to the beginning or end of the scroll area regardless of
> + // the scroll step.
Does this cause any hitch when flinging?
> Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:440
> - bool didMove = m_scrollLayerImpl && (!m_scrollLayerImpl->scrollDelta().isZero() || m_pageScaleDelta != 1.0f);
> - if (!didMove || m_pinchGestureActive) {
> + if (m_pinchGestureActive || !collectScrollDeltas(scrollInfo.get(), m_rootLayerImpl.get())) {
Can you explain why you dropped the m_pageScaleDelta check here? I think that's needed so that pinch zooms are sent back even when there are no scrolls.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list