diff options
| author | Ben Murdoch <benm@google.com> | 2010-02-02 18:20:11 +0000 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2010-02-19 11:47:31 +0000 |
| commit | 8a032a3b29e7708e468e2078ff88a39e083db1da (patch) | |
| tree | b6327286679762a81a7cc03fdf78fde84062ce2d /tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java | |
| parent | c0784c749bb36c9746acd8fe5fe26b3205104d22 (diff) | |
Pass key modifier state to webcore for touch events and update DRT so it can simulate them.
Change-Id: Ic5aa8cb0376f6a3eecaa6340d57f28fa97f016bd
Diffstat (limited to 'tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java')
| -rw-r--r-- | tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java b/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java index 996eaba0b73e..0c2347df1ce9 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java @@ -207,7 +207,7 @@ public class WebViewEventSender implements EventSender { tp.setDownTime(SystemClock.uptimeMillis()); MotionEvent event = MotionEvent.obtain(tp.downTime(), tp.downTime(), - MotionEvent.ACTION_DOWN, tp.getX(), tp.getY(), 0); + MotionEvent.ACTION_DOWN, tp.getX(), tp.getY(), mTouchMetaState); mWebView.onTouchEvent(event); } @@ -223,7 +223,7 @@ public class WebViewEventSender implements EventSender { } MotionEvent event = MotionEvent.obtain(tp.downTime(), SystemClock.uptimeMillis(), - MotionEvent.ACTION_MOVE, tp.getX(), tp.getY(), 0); + MotionEvent.ACTION_MOVE, tp.getX(), tp.getY(), mTouchMetaState); mWebView.onTouchEvent(event); tp.setMoved(false); @@ -237,7 +237,7 @@ public class WebViewEventSender implements EventSender { } MotionEvent event = MotionEvent.obtain(tp.downTime(), SystemClock.uptimeMillis(), - MotionEvent.ACTION_UP, tp.getX(), tp.getY(), 0); + MotionEvent.ACTION_UP, tp.getX(), tp.getY(), mTouchMetaState); mWebView.onTouchEvent(event); if (tp.isReleased()) { @@ -253,7 +253,7 @@ public class WebViewEventSender implements EventSender { if (tp.cancelled()) { MotionEvent event = MotionEvent.obtain(tp.downTime(), SystemClock.uptimeMillis(), - MotionEvent.ACTION_CANCEL, tp.getX(), tp.getY(), 0); + MotionEvent.ACTION_CANCEL, tp.getX(), tp.getY(), mTouchMetaState); mWebView.onTouchEvent(event); } } @@ -285,8 +285,20 @@ public class WebViewEventSender implements EventSender { } public void setTouchModifier(String modifier, boolean enabled) { - // TODO(benm): This needs implementing when Android supports sending key modifiers - // in touch events. + int mask = 0; + if ("alt".equals(modifier.toLowerCase())) { + mask = KeyEvent.META_ALT_ON; + } else if ("shift".equals(modifier.toLowerCase())) { + mask = KeyEvent.META_SHIFT_ON; + } else if ("ctrl".equals(modifier.toLowerCase())) { + mask = KeyEvent.META_SYM_ON; + } + + if (enabled) { + mTouchMetaState |= mask; + } else { + mTouchMetaState &= ~mask; + } } public void releaseTouchPoint(int id) { @@ -302,6 +314,10 @@ public class WebViewEventSender implements EventSender { mTouchPoints.clear(); } + public void clearTouchMetaState() { + mTouchMetaState = 0; + } + private int contentsToWindowX(int x) { return (int) (x * mWebView.getScale()) - mWebView.getScrollX(); } @@ -352,4 +368,5 @@ public class WebViewEventSender implements EventSender { }; private Vector<TouchPoint> mTouchPoints; + private int mTouchMetaState; } |
