From af2af4e53aedb14c781d0351565fd7bec55a141a Mon Sep 17 00:00:00 2001 From: Nicolas Roard Date: Mon, 11 Jan 2010 13:20:16 +0000 Subject: [PATCH] Add proper support for fixed position elements this is two-part change, see http://android-git.corp.google.com/g/#change,37091 for the C++ counterpart. This CL implements fixed position elements (css position: fixed) using layers, supporting pixels and percent lengths. It addresses http://b/1914365 --- core/java/android/webkit/WebView.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 6368dac66759d..1a734750b3418 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -2998,8 +2998,11 @@ public class WebView extends AbsoluteLayout private void drawLayers(Canvas canvas) { if (mRootLayer != 0) { - float scrollY = Math.max(mScrollY - getTitleHeight(), 0); + int scrollY = computeVerticalScrollOffset(); + int viewHeight = getHeight() - getVisibleTitleHeight(); + nativeDrawLayers(mRootLayer, mScrollX, scrollY, + getWidth(), viewHeight, mActualScale, canvas); } } @@ -6361,7 +6364,8 @@ public class WebView extends AbsoluteLayout private native boolean nativeLayersHaveAnimations(int layer); private native void nativeUpdateLayers(int layer, int updates); private native void nativeDrawLayers(int layer, - float scrollX, float scrollY, + int scrollX, int scrollY, + int width, int height, float scale, Canvas canvas); private native void nativeDrawMatches(Canvas canvas); private native void nativeDrawSelectionPointer(Canvas content,