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
20 files changed