diff options
author | Cary Clark <cary@android.com> | 2009-10-15 13:32:08 -0400 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2009-10-16 09:27:47 -0400 |
commit | 39e6773431e6010c5066c0e13facfd943c932c7e (patch) | |
tree | 8eb203cb0b87cd220249f0c308992ddbb90bcb83 | |
parent | b9a22122b08d749368f90128e29aff035031f8db (diff) | |
download | frameworks_base-39e6773431e6010c5066c0e13facfd943c932c7e.zip frameworks_base-39e6773431e6010c5066c0e13facfd943c932c7e.tar.gz frameworks_base-39e6773431e6010c5066c0e13facfd943c932c7e.tar.bz2 |
do not merge: fix copy/paste using trackball on passion
This fix is alrady in mr2. It does not affect sholes --
this is a trackball only bug.
The selection caret and arrow now take the scale factor and
the height of the title bar into account when preparing the
canvas for drawing.
Clicking the trackball at the end of selecting text no longer
sends a click event.
Requires a companion fix in external/webkit
Fixes http://b/issue?id=2187591
-rw-r--r-- | core/java/android/webkit/WebView.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 4bc1a0e..eb09c66 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -2926,12 +2926,12 @@ public class WebView extends AbsoluteLayout animateScroll); if (mNativeClass == 0) return; - if (mShiftIsPressed) { + if (mShiftIsPressed && !animateZoom) { if (mTouchSelection) { nativeDrawSelectionRegion(canvas); } else { - nativeDrawSelection(canvas, mSelectX, mSelectY, - mExtendSelection); + nativeDrawSelection(canvas, mInvActualScale, getTitleHeight(), + mSelectX, mSelectY, mExtendSelection); } } else if (drawCursorRing) { if (mTouchMode == TOUCH_SHORTPRESS_START_MODE) { @@ -4065,6 +4065,9 @@ public class WebView extends AbsoluteLayout return true; } if (ev.getAction() == MotionEvent.ACTION_DOWN) { + if (mShiftIsPressed) { + return true; // discard press if copy in progress + } mTrackballDown = true; if (mNativeClass == 0) { return false; @@ -4093,6 +4096,7 @@ public class WebView extends AbsoluteLayout } else { mExtendSelection = true; } + return true; // discard press if copy in progress } if (DebugFlags.WEB_VIEW) { Log.v(LOGTAG, "onTrackballEvent up ev=" + ev @@ -5600,8 +5604,8 @@ public class WebView extends AbsoluteLayout private native void nativeDestroy(); private native void nativeDrawCursorRing(Canvas content); private native void nativeDrawMatches(Canvas canvas); - private native void nativeDrawSelection(Canvas content - , int x, int y, boolean extendSelection); + private native void nativeDrawSelection(Canvas content, float scale, + int offset, int x, int y, boolean extendSelection); private native void nativeDrawSelectionRegion(Canvas content); private native void nativeDumpDisplayTree(String urlOrNull); private native int nativeFindAll(String findLower, String findUpper); |