summaryrefslogtreecommitdiff
path: root/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-02-02 18:20:11 +0000
committerBen Murdoch <benm@google.com>2010-02-19 11:47:31 +0000
commit8a032a3b29e7708e468e2078ff88a39e083db1da (patch)
treeb6327286679762a81a7cc03fdf78fde84062ce2d /tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java
parentc0784c749bb36c9746acd8fe5fe26b3205104d22 (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.java29
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;
}