Commit 128a4df4 authored by mitz@apple.com's avatar mitz@apple.com

<rdar://problem/9003382> Incomplete repaint of overflow in flipped lines writing modes

https://bugs.webkit.org/show_bug.cgi?id=57197

Reviewed by Maciej Stachowiak.

Source/WebCore: 

Tests: fast/repaint/overflow-flipped-writing-mode-block.html
       fast/repaint/overflow-flipped-writing-mode-table.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint): Flip the overflow rect before testing for intersection
with the damage rect.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paint): Made the intersection check more like the one in
RenderBlock::paint().

LayoutTests: 

* fast/repaint/overflow-flipped-writing-mode-block-expected.checksum: Added.
* fast/repaint/overflow-flipped-writing-mode-block-expected.png: Added.
* fast/repaint/overflow-flipped-writing-mode-block-expected.txt: Added.
* fast/repaint/overflow-flipped-writing-mode-block.html: Added.
* fast/repaint/overflow-flipped-writing-mode-table-expected.checksum: Added.
* fast/repaint/overflow-flipped-writing-mode-table-expected.png: Added.
* fast/repaint/overflow-flipped-writing-mode-table-expected.txt: Added.
* fast/repaint/overflow-flipped-writing-mode-table.html: Added.



git-svn-id: svn://svn.chromium.org/blink/trunk@82123 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 5c19a64c
2011-03-28 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
<rdar://problem/9003382> Incomplete repaint of overflow in flipped lines writing modes
https://bugs.webkit.org/show_bug.cgi?id=57197
* fast/repaint/overflow-flipped-writing-mode-block-expected.checksum: Added.
* fast/repaint/overflow-flipped-writing-mode-block-expected.png: Added.
* fast/repaint/overflow-flipped-writing-mode-block-expected.txt: Added.
* fast/repaint/overflow-flipped-writing-mode-block.html: Added.
* fast/repaint/overflow-flipped-writing-mode-table-expected.checksum: Added.
* fast/repaint/overflow-flipped-writing-mode-table-expected.png: Added.
* fast/repaint/overflow-flipped-writing-mode-table-expected.txt: Added.
* fast/repaint/overflow-flipped-writing-mode-table.html: Added.
2011-03-28 Sergio Villar Senin <svillar@igalia.com>
Unreviewed, rebaseline GTK+ test results.
......
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#FF0000]
RenderBlock {DIV} at (0,0) size 100x25
RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#008000]
RenderBlock {DIV} at (0,0) size 100x50 [bgcolor=#FF0000]
<script src="resources/repaint.js"></script>
<script>
onload = runRepaintTest;
function repaintTest()
{
document.getElementById("target").style.visibility = "hidden";
}
</script>
<div style="height: 100px; width: 100px; background-color: red; -webkit-writing-mode: horizontal-bt;">
<div style="height: 25px;">
<div style="height: 100px; background-color: green;"></div>
</div>
</div>
<div id="target" style="height: 50px; width: 100px; background-color: red; margin-top: -100px;"></div>
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#FF0000]
RenderTable {DIV} at (0,0) size 100x25
RenderTableSection (anonymous) at (0,0) size 100x25
RenderTableRow (anonymous) at (0,0) size 100x25
RenderTableCell (anonymous) at (0,0) size 100x25 [r=0 c=0 rs=1 cs=1]
RenderBlock {DIV} at (0,0) size 100x25
RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#008000]
RenderBlock {DIV} at (0,0) size 100x50 [bgcolor=#FF0000]
<script src="resources/repaint.js"></script>
<script>
onload = runRepaintTest;
function repaintTest()
{
document.getElementById("target").style.visibility = "hidden";
}
</script>
<div style="height: 100px; width: 100px; background-color: red; -webkit-writing-mode: horizontal-bt;">
<div style="display: table; width: 100px;">
<div style="height: 25px;">
<div style="height: 100px; background-color: green;"></div>
</div>
</div>
</div>
<div id="target" style="height: 50px; width: 100px; background-color: red; margin-top: -100px;"></div>
2011-03-28 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
<rdar://problem/9003382> Incomplete repaint of overflow in flipped lines writing modes
https://bugs.webkit.org/show_bug.cgi?id=57197
Tests: fast/repaint/overflow-flipped-writing-mode-block.html
fast/repaint/overflow-flipped-writing-mode-table.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint): Flip the overflow rect before testing for intersection
with the damage rect.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paint): Made the intersection check more like the one in
RenderBlock::paint().
2011-03-28 Xiaomei Ji <xji@chromium.org>
Reviewed by Ryosuke Niwa.
......@@ -2246,6 +2246,7 @@ void RenderBlock::paint(PaintInfo& paintInfo, int tx, int ty)
// paints the root's background.
if (!isRoot()) {
IntRect overflowBox = visualOverflowRect();
flipForWritingMode(overflowBox);
overflowBox.inflate(maximalOutlineSize(paintInfo.phase));
overflowBox.move(tx, ty);
if (!overflowBox.intersects(paintInfo.rect))
......
......@@ -452,10 +452,11 @@ void RenderTable::paint(PaintInfo& paintInfo, int tx, int ty)
PaintPhase paintPhase = paintInfo.phase;
if (!isRoot()) {
int os = 2 * maximalOutlineSize(paintPhase);
if (ty + minYVisualOverflow() >= paintInfo.rect.maxY() + os || ty + maxYVisualOverflow() <= paintInfo.rect.y() - os)
return;
if (tx + minXVisualOverflow() >= paintInfo.rect.maxX() + os || tx + maxXVisualOverflow() <= paintInfo.rect.x() - os)
IntRect overflowBox = visualOverflowRect();
flipForWritingMode(overflowBox);
overflowBox.inflate(maximalOutlineSize(paintInfo.phase));
overflowBox.move(tx, ty);
if (!overflowBox.intersects(paintInfo.rect))
return;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment