[Webkit-unassigned] [Bug 119033] Background doesn't fully repaint on this page
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jul 24 09:54:33 PDT 2013
https://bugs.webkit.org/show_bug.cgi?id=119033
Zalan Bujtas <zalan at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |zalan at apple.com
--- Comment #2 from Zalan Bujtas <zalan at apple.com> 2013-07-24 09:54:24 PST ---
This is an issue with missing repaint rects. When the style change happens, we send repaints on the content -excluding the margins and on the entire RenderView() (see below). Making the entire canvas dirty is meant to fix the background repaint issue on the body/html. However, when the body's margin makes its parent (html) larger than the viewport, repainting only the canvas is not sufficient.
Something like this could address the problem. ->
diff --git a/Source/WebCore/rendering/RenderBox.cpp b/Source/WebCore/rendering/RenderBox.cpp
index d93dbf0..d8f17d5 100644
--- a/Source/WebCore/rendering/RenderBox.cpp
+++ b/Source/WebCore/rendering/RenderBox.cpp
@@ -205,10 +205,12 @@ void RenderBox::styleWillChange(StyleDifference diff, const RenderStyle* newStyl
RenderStyle* oldStyle = style();
if (oldStyle) {
- // The background of the root element or the body element could propagate up to
- // the canvas. Just dirty the entire canvas when our style changes substantially.
+ // The background of the root or the body element could propagate up to
+ // the canvas. Just dirty the parents including the entire canvas when our style changes substantially.
if (diff >= StyleDifferenceRepaint && node() &&
(node()->hasTagName(htmlTag) || node()->hasTagName(bodyTag))) {
+ if (parent() && parent() != view())
+ parent()->repaint();
view()->repaint();
#if USE(ACCELERATED_COMPOSITING)
--
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