Closed Bug 461292 Opened 11 years ago Closed 11 years ago

Visual flicker when an overflow:auto box is moved into or out of the visible region of an overflow:hidden box

Categories

(Core :: Layout, defect)

defect
Not set

Tracking

()

RESOLVED DUPLICATE of bug 421866

People

(Reporter: zwol, Unassigned)

Details

Attachments

(1 file)

Attached file test case
The attached test case has a gray box with two cyan sidebars.  Each of the sidebars can be hidden, and shown again once hidden, by clicking the orange bar next to it.  (Javascript is required, natch.)  When you do this to the right-hand sidebar, all is well, but when you do this to the left-hand sidebar you will see flickering in the black-on-white text immediately to its left, outside the gray box.  This is known to happen on both Windows and Linux (we're not sure about Mac) and consistently from Firefox 2.0 all the way up to latest trunk.

The structure of the test case is like so: The gray box is set to overflow:hidden. The sidebars are absolutely positioned inside the gray box.  The script slides the sidebars horizontally, into or out of the gray box's visible area, thus revealing or concealing them.  That's fine when the sidebar itself (the cyan box) is set to overflow:hidden, but if it's set to overflow:auto instead (or overflow:scroll), you get flicker.

My semi-educated guess at the cause is, overflow:auto/scroll requires a widget, and moving such a frame requires us to move the OS-level window associated with the widget; there is a perceptible delay between when that happens and when the content outside the overflow:hidden container is repainted on top of the window.  Unfortunately that means it's going to be really hard to fix, short of getting rid of widgets...

(This is a much-reduced test case from a real web site which is, unfortunately, in closed alpha test at the moment; I am proxying the bug on behalf of their team.)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 421866
You need to log in before you can comment on or make changes to this bug.