[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