From 078c52c57a3d45814be9d90bf189d41ff372d2b1 Mon Sep 17 00:00:00 2001 From: Leon Scroggins Date: Fri, 4 Sep 2009 16:58:09 -0400 Subject: [PATCH] Clean up from earlier changes to place title bar at top of WebView Rename addTitleBar to setEmbeddedTitleBar. This requires a change to packages/apps/Browser. Also remove mTitleBar if there already was one. In ViewManager, call contentToViewDimension where appropriate. Change-Id: If4d378fad192990253411924a9a80bee96e63ff2 --- core/java/android/webkit/ViewManager.java | 18 +++++++++++++----- core/java/android/webkit/WebView.java | 10 ++++++---- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/core/java/android/webkit/ViewManager.java b/core/java/android/webkit/ViewManager.java index 63f40338f4bb0..6a838c3b3a9ba 100644 --- a/core/java/android/webkit/ViewManager.java +++ b/core/java/android/webkit/ViewManager.java @@ -50,7 +50,7 @@ class ViewManager { } setBounds(x, y, width, height); final AbsoluteLayout.LayoutParams lp = - new AbsoluteLayout.LayoutParams(ctvX(width), ctvX(height), + new AbsoluteLayout.LayoutParams(ctvD(width), ctvD(height), ctvX(x), ctvY(y)); mWebView.mPrivateHandler.post(new Runnable() { public void run() { @@ -97,10 +97,18 @@ class ViewManager { return new ChildView(); } + /** + * Shorthand for calling mWebView.contentToViewDimension. Used when + * obtaining a view dimension from a content dimension, whether it be in x + * or y. + */ + private int ctvD(int val) { + return mWebView.contentToViewDimension(val); + } + /** * Shorthand for calling mWebView.contentToViewX. Used when obtaining a - * view x coordinate from a content x coordinate, or when getting a - * view dimension from a content dimension, whether it be in x or y. + * view x coordinate from a content x coordinate. */ private int ctvX(int val) { return mWebView.contentToViewX(val); @@ -119,8 +127,8 @@ class ViewManager { View view = v.mView; AbsoluteLayout.LayoutParams lp = (AbsoluteLayout.LayoutParams) view.getLayoutParams(); - lp.width = ctvX(v.width); - lp.height = ctvX(v.height); + lp.width = ctvD(v.width); + lp.height = ctvD(v.height); lp.x = ctvX(v.x); lp.y = ctvY(v.y); view.setLayoutParams(lp); diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 8d21b33275761..09bc4e38b5921 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1776,13 +1776,15 @@ public class WebView extends AbsoluteLayout * the WebView normally without translating to account for the title bar. * @hide */ - public void addTitleBar(View v) { - if (null == v) { + public void setEmbeddedTitleBar(View v) { + if (mTitleBar == v) return; + if (mTitleBar != null) { removeView(mTitleBar); - } else { + } + if (null != v) { addView(v, new AbsoluteLayout.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT, mScrollX, 0)); + ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0)); } mTitleBar = v; }