From: tonikitoo@webkit.org Date: Mon, 16 Apr 2012 20:00:42 +0000 (+0000) Subject: 2012-04-16 Antonio Gomes X-Git-Tag: 070512121124~6894 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b83cb81b1ea40b74e2765ab5fa898ae48af1cbcc;p=profile%2Fivi%2Fwebkit-efl.git 2012-04-16 Antonio Gomes Screen shift down when VKB shows by clicking in a input box MKS_3601371 PR #149846 Reviewed by Rob Buis. After switching from ScrollView::canOverscroll to ScrollView::constrainsScrollingToContentEdge we had a less restricted code path allowing/disallowing overscrolling. That caused some webpages like google.com to get on overscroll when adjusting the scroll position to ensure the focused input field is visible. Patch restricts the way we allow overscrolling to the bottom, where the virtual keyboard pops up from, clamping it to 0, 0 if it tries to overscroll upwards, and to maximum scroll position if it overscrolls downwards. Internally reviewed by Mike Fenton. PR #149846 * WebKitSupport/InputHandler.cpp: (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@114288 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- diff --git a/Source/WebKit/blackberry/ChangeLog b/Source/WebKit/blackberry/ChangeLog index 89d11e3..8c62f09 100644 --- a/Source/WebKit/blackberry/ChangeLog +++ b/Source/WebKit/blackberry/ChangeLog @@ -1,3 +1,26 @@ +2012-04-16 Antonio Gomes + + Screen shift down when VKB shows by clicking in a input box MKS_3601371 + https://bugs.webkit.org/show_bug.cgi?id=84057 + + Reviewed by Rob Buis. + + After switching from ScrollView::canOverscroll to ScrollView::constrainsScrollingToContentEdge + we had a less restricted code path allowing/disallowing overscrolling. That caused + some webpages like google.com to get on overscroll when adjusting the scroll + position to ensure the focused input field is visible. + + Patch restricts the way we allow overscrolling to the bottom, where the virtual + keyboard pops up from, clamping it to 0, 0 if it tries to + overscroll upwards, and to maximum scroll position if it overscrolls + downwards. + + PR #149846 + Internally reviewed by Mike Fenton. + + * WebKitSupport/InputHandler.cpp: + (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible): + 2012-04-16 Yongxin Dai [BlackBerry] Increase padding for text element diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp index c6c8472..0b9e025 100644 --- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp @@ -634,7 +634,16 @@ void InputHandler::ensureFocusTextElementVisible(CaretScrollType scrollType) horizontalScrollAlignment, verticalScrollAlignment); - mainFrameView->setScrollPosition(revealRect.location()); + mainFrameView->setConstrainsScrollingToContentEdge(false); + // In order to adjust the scroll position to ensure the focused input field is visible, + // we allow overscrolling. However this overscroll has to be strictly allowed towards the + // bottom of the page on the y axis only, where the virtual keyboard pops up from. + WebCore::IntPoint scrollLocation = revealRect.location(); + scrollLocation.clampNegativeToZero(); + WebCore::IntPoint maximumScrollPosition = WebCore::IntPoint(mainFrameView->contentsWidth() - actualScreenRect.width(), mainFrameView->contentsHeight() - actualScreenRect.height()); + scrollLocation = scrollLocation.shrunkTo(maximumScrollPosition); + mainFrameView->setScrollPosition(scrollLocation); + mainFrameView->setConstrainsScrollingToContentEdge(true); } }