DescriptionFix scrollbar rendering on Mac 10.6 impl-side painting
The function ScrollbarThemeMacNonOverlayAPI::paint calls into
HIThemeDrawTrack to draw the track alone, then calls into
WebThemeEngineImpl::paintScrollbarThumb (a la Mac), to make
the exact same HIThemeDrawTrack call, just with a thumb added.
Coalesce these into a single call to HIThemeDrawTrack, which
makes the thumb actually appear.
The reason that the thumb wasn't appearing in the first place is
that the nested gfx::SkiaBitLocker instances weren't playing nice
with each other. In non-impl-side painting, the gfx::SkiaBitLocker
instances would draw to the underlying canvas. With impl-side
painting, they were drawn offscreen, and this evidently doesn't
work (tested by passing the CGContextRef directly to the
WebThemeEngineImpl::paintScrollbarThumb call rather than
creating a separate gfx::SkiaBitLocker, not root-caused).
So, the solution is a bit roundabout in the sense that it just
side-steps the gfx::SkiaBitLocker problem, but this is better
than fixing that problem and continuing to do this in the
double-identical-draw-for-no-reason manner.
BUG=409708
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=181499
Patch Set 1 #Patch Set 2 : Add rebaselines #Patch Set 3 : Rebase and drop scroll-descendant-with-cached-cliprects.html b/c already has rebaseline needed #
Messages
Total messages: 25 (8 generated)
|