Bug 27042 - Incomplete painting of newly created floats
Summary: Incomplete painting of newly created floats
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: mitz
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2009-07-07 14:14 PDT by mitz
Modified: 2009-07-07 14:36 PDT (History)
0 users

See Also:


Attachments
Patch, including repaint tests (39.27 KB, patch)
2009-07-07 14:21 PDT, mitz
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mitz 2009-07-07 14:14:10 PDT
<rdar://problem/7010981>

Floats of a newly created block can fail to paint correctly if the block’s initial position is not (0, 0) in the parent’s coordinate system. A newly created float that ends up at (0, 0) in its parent’s coordinate system can fail to paint correctly. While these are distinct issues, I discovered one while working on the other so I have a single patch for both, with two separate test cases. Patch forthcoming.
Comment 1 mitz 2009-07-07 14:21:12 PDT
Created attachment 32393 [details]
Patch, including repaint tests
Comment 2 Simon Fraser (smfr) 2009-07-07 14:32:05 PDT
Comment on attachment 32393 [details]
Patch, including repaint tests

> +        for (size_t i = 0; i < floatCount; ++i) {
> +            if (!floats[i].everHadLayout) {
> +                RenderBox* f = floats[i].object;
> +                if (!f->x() && !f->y() && f->checkForRepaintDuringLayout())

I have a preference for comparing with 0 for coordinates, but r=me
Comment 3 mitz 2009-07-07 14:36:50 PDT
Fixed in <http://trac.webkit.org/changeset/45608>.