Closed Bug 199897 Opened 23 years ago Closed 22 years ago

Some areas are not repainted when scrolling (misplaced pixel)

Categories

(Core :: Web Painting, defect, P2)

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: rbs, Assigned: roc)

References

()

Details

(Keywords: regression, Whiteboard: [fix])

Attachments

(2 files, 1 obsolete file)

Some areas are not repainted when smoothscroll is enabled. This is probably due to roundoff errors. I tried the patch on attachment 118792 [details] [diff] [review] from bug 199159, but it didn't make a difference. I will attach a screen capture to show the problem.
sorry, a .bmp image -- I don't have a tool at hand right now for the conversion. It is viewable with Mozilla/Nav7.
I have Mozilla 1.4a, and this bug exist also when smooth scrolling is disabled, as you can watch it at the left of this page : http://linuxfr.org/2003/04/02/11938.html
I've got the same problem on Windows NT (SP4) and Mozilla 1.4a official release (Gecko/20030401). This problem appear with "general.smoothScroll" True OR False
I see this bug with Linux and a fresh CVS-Build. This didn't happen a few weeks ago, so this is a regression.
Keywords: regression
OS: Windows 2000 → All
Hardware: PC → All
*** Bug 199551 has been marked as a duplicate of this bug. ***
This has nothing to do with smoothscroll (see comment #3 and bug 199551. Also I tested it myself). The misplaced pixel appear when you scroll the page. With smooth scroll there are more of them because more (finer-grained) scroll steps are performed. Adding URL from comment #2 to the URL field of the bug.
Summary: Some areas are not repainted with smoothscroll → Some areas are not repainted when scrolling (misplaced pixel)
This was a regression caused by the fix for bug 86249. The problem is that when the dirty rect is entirely outside the border box, border clipping creates rectangles with negative widths and/or heights and then strange things happen. The fix is to not clip if we would create a bogus rectangle.
Attached patch fix (obsolete) — Splinter Review
I checked that this preserves the fix for the testcases in bug 86249.
Attachment #121494 - Flags: superreview?(dbaron)
Attachment #121494 - Flags: review?(dbaron)
Why can't you do an Intersects check earlier in the function and just bail if they don't intersect? (Should PaintBackground do the same thing? Or should the caller be responsible for that?)
> Why can't you do an Intersects check earlier in the function and just bail if > they don't intersect? If dirtyRect intersects the outerRect but not the innerRect, we have to draw some border and can't bail. But we still don't want the innerRect to get a bad size. > Should PaintBackground do the same thing? Or should the > caller be responsible for that? The caller usually does do this via nsContainerFrame::Paint (I think). HR frames are special because the border area is smaller than the frame rect.
Attached patch better patchSplinter Review
this patch is safer and clearer, I think.
Attachment #121494 - Attachment is obsolete: true
Attachment #121610 - Flags: superreview?(dbaron)
Attachment #121610 - Flags: review?(dbaron)
Attachment #121494 - Flags: superreview?(dbaron)
Attachment #121494 - Flags: review?(dbaron)
Attachment #121610 - Flags: review?(dbaron) → review+
Small rendering errors on many pages make Mozilla look bad and there is a fix. Maybe this should block Mozilla 1.4b.
Flags: blocking1.4b?
Flags: blocking1.4b? → blocking1.4b-
*** Bug 204552 has been marked as a duplicate of this bug. ***
*** Bug 205227 has been marked as a duplicate of this bug. ***
The risk here is very small, and I think the gain is significant ... leaving painting dribbles on pages with HRs just looks shoddy.
Flags: blocking1.4?
I have tested the patch for two weeks now on Linux. It fixes the bug and I encountered no new problems.
Attachment #121610 - Flags: superreview?(dbaron) → superreview+
Attachment #121610 - Flags: approval1.4?
Comment on attachment 121610 [details] [diff] [review] better patch a=asa (on behalf of drivers) for checkin to 1.4b.
Attachment #121610 - Flags: approval1.4? → approval1.4+
oops, 1.4, not 1.4b
Fix checked in.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
*** Bug 206154 has been marked as a duplicate of this bug. ***
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: