| Index: content/renderer/gpu/input_handler_manager.cc
|
| ===================================================================
|
| --- content/renderer/gpu/input_handler_manager.cc (revision 221161)
|
| +++ content/renderer/gpu/input_handler_manager.cc (working copy)
|
| @@ -93,6 +93,25 @@
|
| routing_id, main_loop, input_handler, render_view_impl));
|
| }
|
|
|
| +void InputHandlerManager::SetInputEventRewriter(
|
| + int routing_id,
|
| + scoped_ptr<InputEventRewriter> rewriter) {
|
| + message_loop_proxy_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&InputHandlerManager::SetInputEventRewriterOnCompositorThread,
|
| + base::Unretained(this),
|
| + routing_id,
|
| + base::Passed(&rewriter)));
|
| +}
|
| +
|
| +void InputHandlerManager::SetInputEventRewriterOnCompositorThread(
|
| + int routing_id,
|
| + scoped_ptr<InputEventRewriter> rewriter) {
|
| + InputHandlerMap::iterator it = input_handlers_.find(routing_id);
|
| + if (it != input_handlers_.end())
|
| + it->second->SetRewriter(rewriter.Pass());
|
| +}
|
| +
|
| void InputHandlerManager::RemoveInputHandler(int routing_id) {
|
| DCHECK(message_loop_proxy_->BelongsToCurrentThread());
|
|
|
| @@ -116,6 +135,16 @@
|
| return INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
|
| }
|
|
|
| + scoped_ptr<WebInputEvent> rewritten_event_owner;
|
| + InputEventRewriter* rewriter = it->second->rewriter();
|
| + if (rewriter) {
|
| + WebInputEvent* rewritten = rewriter->RewriteInputEvent(input_event);
|
| + if (rewritten) {
|
| + rewritten_event_owner.reset(rewritten);
|
| + input_event = rewritten;
|
| + }
|
| + }
|
| +
|
| InputHandlerProxy* proxy = it->second->input_handler_proxy();
|
| return InputEventDispositionToAck(
|
| proxy->HandleInputEventWithLatencyInfo(*input_event, latency_info));
|
|
|