[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

mitz at apple.com mitz at apple.com
Wed Apr 7 23:21:00 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 18b8ea5dbfe1319cead45a8b78a2f471db59cd45
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 3 22:07:32 2009 +0000

    Allow a frame to go back to copy-on-scroll when it ceases being overlapped
    
    Reviewed by Dave Hyatt.
    
    The code was not testing slow-scrolling frames for overlappedness, thinking the answer
    would not matter. That is not the case if the only reason for the slow-scrolling is
    being overlapped.
    
    * page/FrameView.cpp:
    (WebCore::FrameView::useSlowRepaintsIfNotOverlapped): Added. Returns whether there is any
    reason besides being overlapped that the frame would need to fully repaint on scroll.
    * page/FrameView.h:
    * rendering/RenderWidget.cpp:
    (WebCore::RenderWidget::paint): Use useSlowRepaintsIfNotOverlapped().
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50486 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 11e0a82..223774d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2009-11-03  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Dave Hyatt.
+
+        Allow a frame to go back to copy-on-scroll when it ceases being overlapped
+
+        The code was not testing slow-scrolling frames for overlappedness, thinking the answer
+        would not matter. That is not the case if the only reason for the slow-scrolling is
+        being overlapped.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::useSlowRepaintsIfNotOverlapped): Added. Returns whether there is any
+        reason besides being overlapped that the frame would need to fully repaint on scroll.
+        * page/FrameView.h:
+        * rendering/RenderWidget.cpp:
+        (WebCore::RenderWidget::paint): Use useSlowRepaintsIfNotOverlapped().
+
 2009-11-03  Dmitry Titov  <dimich at chromium.org>
 
         Not reviewed, Qt build fix.
diff --git a/WebCore/page/FrameView.cpp b/WebCore/page/FrameView.cpp
index bc4e4f2..7161bc1 100644
--- a/WebCore/page/FrameView.cpp
+++ b/WebCore/page/FrameView.cpp
@@ -738,6 +738,11 @@ bool FrameView::useSlowRepaints() const
     return m_useSlowRepaints || m_slowRepaintObjectCount > 0 || m_isOverlapped || !m_contentIsOpaque;
 }
 
+bool FrameView::useSlowRepaintsIfNotOverlapped() const
+{
+    return m_useSlowRepaints || m_slowRepaintObjectCount > 0 || !m_contentIsOpaque;
+}
+
 void FrameView::setUseSlowRepaints()
 {
     m_useSlowRepaints = true;
diff --git a/WebCore/page/FrameView.h b/WebCore/page/FrameView.h
index 3d17d2c..8f2c159 100644
--- a/WebCore/page/FrameView.h
+++ b/WebCore/page/FrameView.h
@@ -206,6 +206,7 @@ private:
 
     friend class RenderWidget;
     bool useSlowRepaints() const;
+    bool useSlowRepaintsIfNotOverlapped() const;
 
     void applyOverflowToViewport(RenderObject*, ScrollbarMode& hMode, ScrollbarMode& vMode);
 
diff --git a/WebCore/rendering/RenderWidget.cpp b/WebCore/rendering/RenderWidget.cpp
index 0363ba3..dfce998 100644
--- a/WebCore/rendering/RenderWidget.cpp
+++ b/WebCore/rendering/RenderWidget.cpp
@@ -264,7 +264,7 @@ void RenderWidget::paint(PaintInfo& paintInfo, int tx, int ty)
         else
             m_widget->paint(paintInfo.context, paintInfo.rect);
 
-        if (m_widget->isFrameView() && paintInfo.overlapTestRequests && !static_cast<FrameView*>(m_widget.get())->useSlowRepaints()) {
+        if (m_widget->isFrameView() && paintInfo.overlapTestRequests && !static_cast<FrameView*>(m_widget.get())->useSlowRepaintsIfNotOverlapped()) {
             ASSERT(!paintInfo.overlapTestRequests->contains(this));
             paintInfo.overlapTestRequests->set(this, m_widget->frameRect());
         }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list