Bug 21527

Summary: Make CSS scrollbars support :hover and :active
Product: WebKit Reporter: Dave Hyatt <hyatt>
Component: CSSAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Attachments:
Description Flags
Patch aroben: review+

Description Dave Hyatt 2008-10-10 12:00:54 PDT
Make scrollbars support :hover and :active
Comment 1 Dave Hyatt 2008-10-10 12:01:16 PDT
Created attachment 24269 [details]
Patch
Comment 2 Adam Roben (:aroben) 2008-10-10 12:17:13 PDT
Comment on attachment 24269 [details]
Patch

Can you comment on the changes to :not handling in the ChangeLog?

 2394         case CSSSelector::PseudoHover: {
 2395             ScrollbarPart hoveredPart = scrollbar->hoveredPart();
 2396             if (part == ScrollbarBGPart)
 2397                 return hoveredPart != NoPart;
 2398             if (part == TrackBGPart)
 2399                 return hoveredPart == BackTrackPart || hoveredPart == ForwardTrackPart || hoveredPart == ThumbPart;
 2400             return part == hoveredPart;
 2401         }
 2402         case CSSSelector::PseudoActive: {
 2403             ScrollbarPart pressedPart = scrollbar->pressedPart();
 2404             if (part == ScrollbarBGPart)
 2405                 return pressedPart != NoPart;
 2406             if (part == TrackBGPart)
 2407                 return pressedPart == BackTrackPart || pressedPart == ForwardTrackPart || pressedPart == ThumbPart;
 2408             return part == pressedPart;
 2409         }

Maybe it's worth putting this code into a function so we don't have to duplicate it?

 99 void RenderScrollbar::setPressedPart(ScrollbarPart part)
 100 {
 101     ScrollbarPart oldPart = m_pressedPart;

Should we check part != m_pressedPart before continuing?

r=me if you land a manual test with it.
Comment 3 Dave Hyatt 2008-10-10 12:33:09 PDT
Fixed in r37486.