Chromium Code Reviews| Index: remoting/client/plugin/pepper_input_handler.cc |
| diff --git a/remoting/client/plugin/pepper_input_handler.cc b/remoting/client/plugin/pepper_input_handler.cc |
| index 60a2746b8cd0fd2d1db7bb4b2d8623eba1e88f41..b3e51c95df9ed2d61fe121c88be1422d470517f3 100644 |
| --- a/remoting/client/plugin/pepper_input_handler.cc |
| +++ b/remoting/client/plugin/pepper_input_handler.cc |
| @@ -24,6 +24,7 @@ PepperInputHandler::PepperInputHandler( |
| input_stub_(input_stub), |
| callback_factory_(this), |
| has_focus_(false), |
| + send_mouse_input_when_unfocused_(false), |
|
Wez
2014/05/22 01:14:23
nit: You could call this (and the related method,
Jamie
2014/05/22 01:32:09
Since it controls more than just mouse movements,
|
| mouse_lock_state_(MouseLockDisallowed), |
| wheel_delta_x_(0), |
| wheel_delta_y_(0), |
| @@ -75,7 +76,7 @@ bool PepperInputHandler::HandleInputEvent(const pp::InputEvent& event) { |
| case PP_INPUTEVENT_TYPE_MOUSEDOWN: |
| case PP_INPUTEVENT_TYPE_MOUSEUP: { |
| - if (!has_focus_) |
| + if (!has_focus_ && !send_mouse_input_when_unfocused_) |
|
Wez
2014/05/22 01:14:23
Should we be filtering these at all? Is there any
Jamie
2014/05/22 01:32:09
I wrote up a summary when I added this code:
http
|
| return false; |
| pp::MouseInputEvent pp_mouse_event(event); |
| @@ -114,7 +115,7 @@ bool PepperInputHandler::HandleInputEvent(const pp::InputEvent& event) { |
| case PP_INPUTEVENT_TYPE_MOUSEMOVE: |
| case PP_INPUTEVENT_TYPE_MOUSEENTER: |
| case PP_INPUTEVENT_TYPE_MOUSELEAVE: { |
| - if (!has_focus_) |
| + if (!has_focus_ && !send_mouse_input_when_unfocused_) |
| return false; |
| pp::MouseInputEvent pp_mouse_event(event); |
| @@ -134,7 +135,7 @@ bool PepperInputHandler::HandleInputEvent(const pp::InputEvent& event) { |
| } |
| case PP_INPUTEVENT_TYPE_WHEEL: { |
| - if (!has_focus_) |
| + if (!has_focus_ && !send_mouse_input_when_unfocused_) |
| return false; |
| pp::WheelInputEvent pp_wheel_event(event); |
| @@ -216,6 +217,10 @@ void PepperInputHandler::SetMouseCursor(scoped_ptr<pp::ImageData> image, |
| } |
| } |
| +void PepperInputHandler::SendMouseInputWhenUnfocused() { |
| + send_mouse_input_when_unfocused_ = true; |
| +} |
| + |
| void PepperInputHandler::MouseLockLost() { |
| DCHECK(mouse_lock_state_ == MouseLockOn || |
| mouse_lock_state_ == MouseLockCancelling); |