Closed
Bug 593627
Opened 14 years ago
Closed 10 years ago
ghost form control drawn when scrolling
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
INCOMPLETE
Tracking | Status | |
---|---|---|
blocking2.0 | --- | - |
People
(Reporter: tnikkel, Assigned: tnikkel)
References
Details
Attachments
(2 files)
Set general.smoothScroll to true. The bug exists without smooth scrolling, but is more intermittent. Login to bugzilla (needed so we get form controls). Visit a bug page, say https://bugzilla.mozilla.org/show_bug.cgi?id=590302 . Scroll down so that status1.9.1 dropdown is out of view. Slowly scroll back up using the arrow keys (other ways of scrolling also work, but arrow keys are more reliable). I get a down arrow button of a drop down drawn near the bottom of the page below the status1.9.1 drop down. Doesn't happen on Linux or Windows 7. Regressed on nightlies when retained layers landed. Seems similar to some other retained layers bugs, but this one is easily reproducible.
Assignee | ||
Updated•14 years ago
|
blocking2.0: --- → ?
Assignee: nobody → roc
blocking2.0: ? → betaN+
Assignee | ||
Comment 1•14 years ago
|
||
Reducing this further would be helpful.
Assignee | ||
Comment 2•14 years ago
|
||
We update the scroll pos at last paint for a scroll frame when we call BuildDisplayList on it. I wonder if that is too early or too late and causing this bug?
Assignee | ||
Comment 3•14 years ago
|
||
Delaying it doesn't seem to help.
Assignee | ||
Updated•14 years ago
|
Assignee: roc → tnikkel
Assignee | ||
Comment 4•14 years ago
|
||
This only happens for the classic theme. The Windows functions we call to draw native widgets for the classic theme (like DrawFrameControl) don't take a dirty or clip rect, just the rect of the widget, so we rely on the clip on the HDC so that we don't draw parts we don't want. This would produce incorrect results with retained layers because we use a circular buffer. Even if I set the clip on the gfxContext to a 0x0 rect before DrawFrameControl is called the control still seems to be drawn. So maybe something is going wrong when cairo_win32_get_dc_with_clip tries to set the clip on the HDC, or maybe DrawFrameControl doesn't respect the clip on the HDC?
Comment 5•14 years ago
|
||
cairo_win32_get_dc_with_clip being broken seems more likely than DrawFrameControl not respecting the the clip. However, you should be able to check what the clip is set to before the call to DrawFrameControl and make sure it's sane.
Assignee | ||
Comment 6•14 years ago
|
||
Is there an easy way check what the clip is on an HDC?
Comment 7•14 years ago
|
||
(In reply to comment #6) > Is there an easy way check what the clip is on an HDC? Yep. You can use GetClipBox or GetClipRgn. If the ClipBox is insufficient you probably want to use GetClipRgn and then GetRegionData to get at the rectangles.
blocking2.0: betaN+ → -
Assignee | ||
Comment 8•13 years ago
|
||
This bug happens quite easily on Linux for me when scrolling a select that has focus. Previously I thought it was Windows classic only.
Comment 9•10 years ago
|
||
Timothy, still able to repro? (I don't have Linux/WinXP for checking).
Flags: needinfo?(tnikkel)
Assignee | ||
Comment 10•10 years ago
|
||
I don't use Linux or Windows regularly anymore so I can't say.
Flags: needinfo?(tnikkel)
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•