diff options
author | mariakhomenko@chromium.org <mariakhomenko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-15 15:13:11 +0000 |
---|---|---|
committer | mariakhomenko@chromium.org <mariakhomenko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-15 15:13:11 +0000 |
commit | bd38a51821150cb872b6a3d5e01e25ff15c4f12b (patch) | |
tree | ec5afe000d81abdc06f054aec220f3a72d2fa546 /android_webview/java | |
parent | 151905a7ff1135a90bfa191529797bc8e7795d87 (diff) | |
download | chromium_src-bd38a51821150cb872b6a3d5e01e25ff15c4f12b.zip chromium_src-bd38a51821150cb872b6a3d5e01e25ff15c4f12b.tar.gz chromium_src-bd38a51821150cb872b6a3d5e01e25ff15c4f12b.tar.bz2 |
Fix stuck state when long press on a button is performed.
This makes sure that when a tap becomes a long press, we keep
SHOW_PRESSED_STATE until either it becomes a LONG_TAP (finger is lifted),
or SCROLL, or window focus is lost (a context menu has been opened). At
which point we will send SHOW_PRESS_CANCEL.
BUG=285712
Review URL: https://chromiumcodereview.appspot.com/23444068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223283 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/java')
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/AwContents.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java index 631d5ed..cb91c77 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java @@ -180,6 +180,7 @@ public class AwContents { private Callable<Picture> mPictureListenerContentProvider; private boolean mContainerViewFocused; + private boolean mWindowFocused; private AwAutofillManagerDelegate mAwAutofillManagerDelegate; @@ -593,9 +594,11 @@ public class AwContents { final boolean wasWindowVisible = mIsWindowVisible; final boolean wasPaused = mIsPaused; final boolean wasFocused = mContainerViewFocused; + final boolean wasWindowFocused = mWindowFocused; // Properly clean up existing mContentViewCore and mNativeAwContents. if (wasFocused) onFocusChanged(false, 0, null); + if (wasWindowFocused) onWindowFocusChanged(false); if (wasViewVisible) setViewVisibilityInternal(false); if (wasWindowVisible) setWindowVisibilityInternal(false); if (!wasPaused) onPause(); @@ -611,6 +614,7 @@ public class AwContents { onSizeChanged(mContainerView.getWidth(), mContainerView.getHeight(), 0, 0); if (wasWindowVisible) setWindowVisibilityInternal(true); if (wasViewVisible) setViewVisibilityInternal(true); + if (wasWindowFocused) onWindowFocusChanged(wasWindowFocused); if (wasFocused) onFocusChanged(true, 0, null); } @@ -1486,7 +1490,8 @@ public class AwContents { * @see android.view.View#onWindowFocusChanged() */ public void onWindowFocusChanged(boolean hasWindowFocus) { - // If adding any code here, remember to adding correct handling in receivePopupContents(). + mWindowFocused = hasWindowFocus; + mContentViewCore.onWindowFocusChanged(hasWindowFocus); } /** |