Skip to content
  • bdakin@apple.com's avatar
    Fix for <rdar://problem/8944558> Overlay scrollers in overflow areas need to · 9e05cff8
    bdakin@apple.com authored
    send notifications appropriate times (showing up, resizing)
    -and corresponding-
    https://bugs.webkit.org/show_bug.cgi?id=56067
    
    Reviewed by Darin Adler.
    
    The general strategy here is to add a HashSet of ScrollableAreas to the page that 
    can be accessed when necessary to send notifications to all ScrollableAreas. In 
    turn, all of the ScrollableArea classes that add themselves to the HashSet must 
    keep a weak pointer to Page so that they can remove themselves without relying on 
    Frames or Renderers to still have references.
    
    Find layers for relevant node and if the layers are in the Page's ScrollableArea 
    set, then send the relevant notification.
    * page/EventHandler.cpp:
    (WebCore::layerForNode):
    (WebCore::EventHandler::mouseMoved):
    (WebCore::EventHandler::updateMouseEventTargetNode):
    
    When the page is set active or not active, iterate through the Page's 
    ScrollableAreas to send hide/show notifications. 
    * page/FocusController.cpp:
    (WebCore::FocusController::setActive):
    
    When a FrameView is created, add it to the ScrollableArea set. When it's 
    destroyed, remove it.
    * page/FrameView.cpp:
    (WebCore::FrameView::FrameView):
    (WebCore::FrameView::~FrameView):
    
    Iterate through the Page's ScrollableAreas to send the paint notification.
    (WebCore::FrameView::notifyPageThatContentAreaWillPaint):
    * page/FrameView.h:
    (WebCore::FrameView::disconnectFromPage):
    
    Add the new ScrollableArea set.
    * page/Page.cpp:
    (WebCore::Page::~Page):
    (WebCore::Page::addScrollableArea):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    9e05cff8