[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


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
    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())

void FrameView::unregisterFixedPositionedObject(RenderObject* object)
    bool wasEmpty = m_fixedPositionedObjects.isEmpty();
    if (platformWidget() && !wasEmpty && m_fixedPositionedObjects.isEmpty())

And the same for FrameView::useSlowRepaints:
bool FrameView::useSlowRepaints() const
    return m_useSlowRepaints || m_slowRepaintObjectCount > 0 ||
(platformWidget() && !m_fixedPositionedObjects.isEmpty()) || m_isOverlapped ||

bool FrameView::useSlowRepaintsIfNotOverlapped() const
    return m_useSlowRepaints || m_slowRepaintObjectCount > 0 ||
(platformWidget() && !m_fixedPositionedObjects.isEmpty()) ||

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