Fix bugs around removing and attaching WebViews.

When removing a WebView from its Window, remove the WebTextView.
Remove the old attempt to do the same, which was not being called.

When attaching a WebView to a Window, call onWindowFocusChanged so
its state of drawing the selection ring returns.

Fixes http://b/issue?id=2257787 and http://b/issue?id=2260867
This commit is contained in:
Leon Scroggins
2009-11-16 10:51:12 -05:00
parent 5fd01f7aff
commit a57632fee7
2 changed files with 15 additions and 21 deletions

View File

@@ -178749,7 +178749,7 @@
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
deprecated="deprecated"
visibility="public"
>
<parameter name="parent" type="android.view.View">
@@ -178764,7 +178764,7 @@
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
deprecated="deprecated"
visibility="public"
>
<parameter name="p" type="android.view.View">

View File

@@ -3572,39 +3572,33 @@ public class WebView extends AbsoluteLayout
return copiedSomething;
}
// Set this as a hierarchy change listener so we can know when this view
// is removed and still have access to our parent.
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
ViewParent parent = getParent();
if (parent instanceof ViewGroup) {
ViewGroup p = (ViewGroup) parent;
p.setOnHierarchyChangeListener(this);
}
if (hasWindowFocus()) onWindowFocusChanged(true);
}
@Override
protected void onDetachedFromWindow() {
clearTextEntry();
super.onDetachedFromWindow();
ViewParent parent = getParent();
if (parent instanceof ViewGroup) {
ViewGroup p = (ViewGroup) parent;
p.setOnHierarchyChangeListener(null);
}
// Clean up the zoom controller
mZoomButtonsController.setVisible(false);
}
// Implementation for OnHierarchyChangeListener
/**
* @deprecated WebView no longer needs to implement
* ViewGroup.OnHierarchyChangeListener. This method does nothing now.
*/
@Deprecated
public void onChildViewAdded(View parent, View child) {}
public void onChildViewRemoved(View p, View child) {
if (child == this) {
clearTextEntry();
}
}
/**
* @deprecated WebView no longer needs to implement
* ViewGroup.OnHierarchyChangeListener. This method does nothing now.
*/
@Deprecated
public void onChildViewRemoved(View p, View child) {}
/**
* @deprecated WebView should not have implemented