Skip to content
  • hyatt@apple.com's avatar
    WebCore: https://bugs.webkit.org/show_bug.cgi?id=48545, Home/End,... · a60d0cea
    hyatt@apple.com authored
    WebCore: https://bugs.webkit.org/show_bug.cgi?id=48545, Home/End, PageUp/PageDwn should respect writing-mode. 
    
    Reviewed by Sam Weinig.
    
    Add logical scrolling to WebCore.  It basically mirrors physical scrolling but works in abstract logical
    directions and only converts to physical when it's time to attempt the scroll.
            
    Also fixed bugs in scrollRecursively and logicalScrollRecursively where overflow sections in containing
    frames got skipped over.
            
    Made the resetting of the inline axis scroll position on Home/End Mac-specific for overflow sections.
            
    * WebCore.exp.in:
    * page/EventHandler.cpp:
    (WebCore::EventHandler::logicalScrollOverflow):
    (WebCore::EventHandler::scrollRecursively):
    (WebCore::EventHandler::logicalScrollRecursively):
    * page/EventHandler.h:
    * page/FrameView.cpp:
    (WebCore::FrameView::isVerticalDocument):
    (WebCore::FrameView::isFlippedDocument):
    * page/FrameView.h:
    * platform/ScrollTypes.h:
    (WebCore::logicalToPhysical):
    * platform/ScrollView.cpp:
    (WebCore::ScrollView::scroll):
    (WebCore::ScrollView::logicalScroll):
    * platform/ScrollView.h:
    (WebCore::ScrollView::isVerticalDocument):
    (WebCore::ScrollView::isFlippedDocument):
    * rendering/RenderBox.cpp:
    (WebCore::RenderBox::logicalScroll):
    * rendering/RenderBox.h:
    * rendering/RenderLayer.cpp:
    (WebCore::RenderLayer::scroll):
    * rendering/RenderListBox.cpp:
    (WebCore::RenderListBox::logicalScroll):
    * rendering/RenderListBox.h:
    * rendering/RenderTextControlSingleLine.cpp:
    (WebCore::RenderTextControlSingleLine::logicalScroll):
    * rendering/RenderTextControlSingleLine.h:
    
    WebKit2: https://bugs.webkit.org/show_bug.cgi?id=48545, Home/End, PageUp/PageDwn should respect writing-mode.  Use
    logical scrolling instead of physical scrolling for those keys in WebKit2.
    
    Reviewed by Sam Weinig.
    
    * WebProcess/WebPage/mac/WebPageMac.mm:
    (WebKit::logicalScroll):
    (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
    * WebProcess/WebPage/qt/WebPageQt.cpp:
    (WebKit::logicalScroll):
    (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
    * WebProcess/WebPage/win/WebPageWin.cpp:
    (WebKit::logicalScroll):
    (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a60d0cea