Index: mojo/services/native_viewport/native_viewport_android.cc |
diff --git a/mojo/services/native_viewport/native_viewport_android.cc b/mojo/services/native_viewport/native_viewport_android.cc |
index fbb02f5f008f2d23087668df619f794c84f41f95..4340c4e95f5ae5ec64f0b5877312f4fd90937c1e 100644 |
--- a/mojo/services/native_viewport/native_viewport_android.cc |
+++ b/mojo/services/native_viewport/native_viewport_android.cc |
@@ -7,6 +7,8 @@ |
#include <android/native_window_jni.h> |
#include "mojo/services/native_viewport/android/mojo_viewport.h" |
#include "mojo/shell/context.h" |
+#include "ui/events/event.h" |
+#include "ui/gfx/point.h" |
namespace mojo { |
namespace services { |
@@ -14,6 +16,7 @@ namespace services { |
NativeViewportAndroid::NativeViewportAndroid(NativeViewportDelegate* delegate) |
: delegate_(delegate), |
window_(NULL), |
+ id_generator_(0), |
weak_factory_(this) { |
} |
@@ -38,6 +41,20 @@ void NativeViewportAndroid::OnResized(const gfx::Size& size) { |
delegate_->OnResized(size); |
} |
+void NativeViewportAndroid::OnTouchEvent(int pointer_id, |
+ ui::EventType action, |
+ float x, float y, |
+ int64 time_ms) { |
+ gfx::Point location(static_cast<int>(x), static_cast<int>(y)); |
+ ui::TouchEvent event(action, location, |
+ id_generator_.GetGeneratedID(pointer_id), |
+ base::TimeDelta::FromMilliseconds(time_ms)); |
+ // TODO(beng): handle multiple touch-points. |
+ delegate_->OnEvent(&event); |
+ if (action == ui::ET_TOUCH_RELEASED) |
+ id_generator_.ReleaseNumber(pointer_id); |
+} |
+ |
void NativeViewportAndroid::ReleaseWindow() { |
ANativeWindow_release(window_); |
window_ = NULL; |