Closed Bug 480053 Opened 16 years ago Closed 16 years ago

Fix z-ordering of scrollbars to match Webkit/IE8

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: roc, Assigned: roc)

Details

Attachments

(1 file)

We render scrollbars in the 'content' layer (roughly, step 7 of http://www.w3.org/TR/CSS21/zindex.html ). Webkit, IE8 and Opera render them just above the background and borders of the scrollable element. This isn't specced but it's trivial for us to change so we may as well be consistent with the others.
Attached patch fixSplinter Review
Simple fix
Attachment #363996 - Flags: review?(dbaron)
Does this affect the z-ordering relative to anything inside the scrolled element?
The contents of the scrolled element are all clipped and can't overlap the scrollbars, except for possibly absolutely positioned descendants. But (assuming the scrolled element is not an abs-pos container) the scrollbars are currently in front of negative z-index abs-pos descendants and behind all other abs-pos descendants, and that won't change with this patch.
So, er, now that I look at this patch more closely... shouldn't it still do the pseudo-stacking-context thing, except for the background layer? It seems like the patch as written will mean that non-native-theme scrollbars (which we probably still hit in some cases in the default theme and broken GTK themes, and certainly with some non-default Firefox themes) will actually end up *split* between layers, which seems bad. (Did you test what happens if you turn off native theme?)
No, I didn't test that. But all the scrollbars that we have in our tree, and all their parts, use only -moz-appearance, backgrounds, and borders, so they shouldn't be affected. The pseudo-stacking-context stuff breaks the layering here, because pseudo-stacking-contexts are put in the PositionedDescendants list. I could fix this to handle arbitrary scrollbar styling by passing DISPLAY_CHILD_FORCE_STACKING_CONTEXT and passing in a fresh nsDisplayListCollection, then moving the items from the PositionedDescendants list to the scrollframe's BorderBackground list. Worth it?
Comment on attachment 363996 [details] [diff] [review] fix I guess not. r=dbaron (I'd have thought the arrows would go in the inline layer, though.)
Attachment #363996 - Flags: superreview+
Attachment #363996 - Flags: review?(dbaron)
Attachment #363996 - Flags: review+
Not as far as I can tell.
Whiteboard: [needs landing]
Pushed 1f789656458f.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Whiteboard: [needs landing]
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: