AI 143733: Fix for issue 1648553: IME overlaps over focus ring in gmail search box. In WebView::requestChildRectangleOnScreen we now move a rectangle up if its bottom is offscreen, even if its top is not. We also move it so that its top is at the top third of the WebView's height (if it still fits on screen) so that you can see space (and potentially other input fields) below it.

BUG=1648553

Automated import of CL 143733
This commit is contained in:
Leon Scroggins
2009-03-31 14:29:35 -07:00
committed by The Android Open Source Project
parent c38c0f6b98
commit bed911a44a

View File

@@ -4405,14 +4405,19 @@ public class WebView extends AbsoluteLayout
int scrollYDelta = 0;
if (rect.bottom > screenBottom && rect.top > screenTop) {
if (rect.height() > height) {
scrollYDelta += (rect.top - screenTop);
if (rect.bottom > screenBottom) {
int oneThirdOfScreenHeight = height / 3;
if (rect.height() > 2 * oneThirdOfScreenHeight) {
// If the rectangle is too tall to fit in the bottom two thirds
// of the screen, place it at the top.
scrollYDelta = rect.top - screenTop;
} else {
scrollYDelta += (rect.bottom - screenBottom);
// If the rectangle will still fit on screen, we want its
// top to be in the top third of the screen.
scrollYDelta = rect.top - (screenTop + oneThirdOfScreenHeight);
}
} else if (rect.top < screenTop) {
scrollYDelta -= (screenTop - rect.top);
scrollYDelta = rect.top - screenTop;
}
int width = getWidth() - getVerticalScrollbarWidth();