Index: services/native_viewport/native_viewport_impl.cc |
diff --git a/services/native_viewport/native_viewport_impl.cc b/services/native_viewport/native_viewport_impl.cc |
index a07ca9ec41d6842ec27b1082912d6d545c3e538d..02d24198e9aee5a20935aa93327dce8751d04b00 100644 |
--- a/services/native_viewport/native_viewport_impl.cc |
+++ b/services/native_viewport/native_viewport_impl.cc |
@@ -94,6 +94,11 @@ void NativeViewportImpl::SetEventDispatcher( |
event_dispatcher_ = dispatcher.Pass(); |
} |
+void NativeViewportImpl::SetKeyEventDispatcher( |
+ mojo::NativeViewportEventDispatcherPtr dispatcher) { |
+ key_event_dispatcher_ = dispatcher.Pass(); |
+} |
+ |
void NativeViewportImpl::OnMetricsChanged(mojo::ViewportMetricsPtr metrics) { |
if (metrics_->Equals(*metrics)) |
return; |
@@ -149,6 +154,13 @@ bool NativeViewportImpl::OnEvent(mojo::EventPtr event) { |
pointers_waiting_on_ack_.erase(event->pointer_data->pointer_id); |
break; |
+ case mojo::EventType::KEY_PRESSED: |
+ case mojo::EventType::KEY_RELEASED: |
+ if (key_event_dispatcher_.get()) |
+ key_event_dispatcher_->OnEvent(event.Pass(), callback); |
+ return false; |
+ break; |
+ |
default: |
break; |
} |