[Webkit-unassigned] [Bug 33150] Do not render the full frame when there is some elements with fixed positioning
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sat Jan 23 04:42:29 PST 2010
https://bugs.webkit.org/show_bug.cgi?id=33150
Benjamin Poulain <benjamin.poulain at nokia.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #47186|0 |1
is obsolete| |
Attachment #47270| |review?, commit-queue?
Flag| |
--- Comment #45 from Benjamin Poulain <benjamin.poulain at nokia.com> 2010-01-23 04:42:25 PST ---
Created an attachment (id=47270)
--> (https://bugs.webkit.org/attachment.cgi?id=47270)
Repaint only the invalidated area after scrolling
The same patch with minor modification for Mac.
As Darin Adler pointed out, there is a different path for scrolling when the
view is a platformWidget():
bool ScrollView::scroll(ScrollDirection direction, ScrollGranularity
granularity)
{
if (platformWidget())
return platformScroll(direction, granularity);
In this case, ScrollView::scrollContents() is never used.
So, if platformWidget() we need the same behavior as before. I have change the
object registration function to check for platformWidget():
void FrameView::registerFixedPositionedObject(RenderObject* object)
{
if (platformWidget() && m_fixedPositionedObjects.isEmpty())
setCanBlitOnScroll(false);
m_fixedPositionedObjects.add(object);
}
void FrameView::unregisterFixedPositionedObject(RenderObject* object)
{
bool wasEmpty = m_fixedPositionedObjects.isEmpty();
m_fixedPositionedObjects.remove(object);
if (platformWidget() && !wasEmpty && m_fixedPositionedObjects.isEmpty())
setCanBlitOnScroll(!useSlowRepaints());
}
And the same for FrameView::useSlowRepaints:
bool FrameView::useSlowRepaints() const
{
return m_useSlowRepaints || m_slowRepaintObjectCount > 0 ||
(platformWidget() && !m_fixedPositionedObjects.isEmpty()) || m_isOverlapped ||
!m_contentIsOpaque;
}
bool FrameView::useSlowRepaintsIfNotOverlapped() const
{
return m_useSlowRepaints || m_slowRepaintObjectCount > 0 ||
(platformWidget() && !m_fixedPositionedObjects.isEmpty()) ||
!m_contentIsOpaque;
}
--
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