OSDN Git Service

Fix android:focusableInTouchMode support
authorJohn Reck <jreck@google.com>
Wed, 16 May 2012 21:56:20 +0000 (14:56 -0700)
committerJohn Reck <jreck@google.com>
Wed, 16 May 2012 21:56:20 +0000 (14:56 -0700)
 Bug: 6448106

Change-Id: I17161754eaf08145623466a6db25893e3e5b2e16

core/java/android/webkit/WebViewClassic.java
core/res/res/values/styles.xml

index f1f3db2..3ae7e9c 100644 (file)
@@ -1598,8 +1598,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
     private void init() {
         OnTrimMemoryListener.init(mContext);
         mWebView.setWillNotDraw(false);
-        mWebView.setFocusable(true);
-        mWebView.setFocusableInTouchMode(true);
         mWebView.setClickable(true);
         mWebView.setLongClickable(true);
 
@@ -5767,14 +5765,15 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
             return false;
         }
 
-        if (!mWebView.isFocused()) {
-            mWebView.requestFocus();
-        }
-
         if (mInputDispatcher == null) {
             return false;
         }
 
+        if (mWebView.isFocusable() && mWebView.isFocusableInTouchMode()
+                && !mWebView.isFocused()) {
+            mWebView.requestFocus();
+        }
+
         if (mInputDispatcher.postPointerEvent(ev, getScrollX(),
                 getScrollY() - getTitleHeight(), mZoomManager.getInvScale())) {
             mInputDispatcher.dispatchUiEvents();
index 2b34dab..4d038e0 100644 (file)
@@ -631,6 +631,7 @@ please see styles_device_defaults.xml.
 
     <style name="Widget.WebView">
         <item name="android:focusable">true</item>
+        <item name="android:focusableInTouchMode">true</item>
         <item name="android:scrollbars">horizontal|vertical</item>
     </style>