| Index: remoting/host/local_input_monitor_win.cc
|
| diff --git a/remoting/host/local_input_monitor_win.cc b/remoting/host/local_input_monitor_win.cc
|
| index 85a20306a444b1cb6031fa4146d22b0d75937dce..c2d43e44d5c6aa2163604df57a4e34fb92c2b674 100644
|
| --- a/remoting/host/local_input_monitor_win.cc
|
| +++ b/remoting/host/local_input_monitor_win.cc
|
| @@ -12,7 +12,6 @@
|
| #include "base/stringprintf.h"
|
| #include "base/threading/non_thread_safe.h"
|
| #include "base/win/wrapped_window_proc.h"
|
| -#include "remoting/host/mouse_move_observer.h"
|
| #include "third_party/skia/include/core/SkPoint.h"
|
|
|
| namespace remoting {
|
| @@ -30,21 +29,19 @@ class LocalInputMonitorWin : public base::NonThreadSafe,
|
| public:
|
| LocalInputMonitorWin(
|
| scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
|
| + SessionController::Delegate* delegate);
|
| ~LocalInputMonitorWin();
|
|
|
| - virtual void Start(MouseMoveObserver* mouse_move_observer,
|
| - const base::Closure& disconnect_callback) OVERRIDE;
|
| - virtual void Stop() OVERRIDE;
|
| -
|
| private:
|
| // The actual implementation resides in LocalInputMonitorWin::Core class.
|
| class Core : public base::RefCountedThreadSafe<Core> {
|
| public:
|
| Core(scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
|
| + SessionController::Delegate* delegate);
|
|
|
| - void Start(MouseMoveObserver* mouse_move_observer);
|
| + void Start();
|
| void Stop();
|
|
|
| private:
|
| @@ -54,7 +51,7 @@ class LocalInputMonitorWin : public base::NonThreadSafe,
|
| void StartOnUiThread();
|
| void StopOnUiThread();
|
|
|
| - // Posts OnLocalMouseMoved() notification to |mouse_move_observer_| on
|
| + // Posts OnLocalMouseMoved() notification to |delegate_| on
|
| // the |caller_task_runner_| thread.
|
| void OnLocalMouseMoved(const SkIPoint& position);
|
|
|
| @@ -83,8 +80,8 @@ class LocalInputMonitorWin : public base::NonThreadSafe,
|
| // Handle of the input window.
|
| HWND window_;
|
|
|
| - // Observer to dispatch mouse event notifications to.
|
| - MouseMoveObserver* mouse_move_observer_;
|
| + // Points to the object receiving mouse event notifications.
|
| + SessionController::Delegate* delegate_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(Core);
|
| };
|
| @@ -96,39 +93,32 @@ class LocalInputMonitorWin : public base::NonThreadSafe,
|
|
|
| LocalInputMonitorWin::LocalInputMonitorWin(
|
| scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
|
| - : core_(new Core(caller_task_runner, ui_task_runner)) {
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
|
| + SessionController::Delegate* delegate)
|
| + : core_(new Core(caller_task_runner, ui_task_runner, delegate)) {
|
| + core_->Start();
|
| }
|
|
|
| LocalInputMonitorWin::~LocalInputMonitorWin() {
|
| -}
|
| -
|
| -void LocalInputMonitorWin::Start(MouseMoveObserver* mouse_move_observer,
|
| - const base::Closure& disconnect_callback) {
|
| - core_->Start(mouse_move_observer);
|
| -}
|
| -
|
| -void LocalInputMonitorWin::Stop() {
|
| core_->Stop();
|
| }
|
|
|
| LocalInputMonitorWin::Core::Core(
|
| scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
|
| + SessionController::Delegate* delegate)
|
| : caller_task_runner_(caller_task_runner),
|
| ui_task_runner_(ui_task_runner),
|
| atom_(0),
|
| instance_(NULL),
|
| window_(NULL),
|
| - mouse_move_observer_(NULL) {
|
| + delegate_(delegate) {
|
| + DCHECK(delegate_);
|
| }
|
|
|
| -void LocalInputMonitorWin::Core::Start(MouseMoveObserver* mouse_move_observer) {
|
| +void LocalInputMonitorWin::Core::Start() {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
| - DCHECK(!mouse_move_observer_);
|
| - DCHECK(mouse_move_observer);
|
|
|
| - mouse_move_observer_ = mouse_move_observer;
|
| ui_task_runner_->PostTask(FROM_HERE,
|
| base::Bind(&Core::StartOnUiThread, this));
|
| }
|
| @@ -136,7 +126,7 @@ void LocalInputMonitorWin::Core::Start(MouseMoveObserver* mouse_move_observer) {
|
| void LocalInputMonitorWin::Core::Stop() {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|
| - mouse_move_observer_ = NULL;
|
| + delegate_ = NULL;
|
| ui_task_runner_->PostTask(FROM_HERE, base::Bind(&Core::StopOnUiThread, this));
|
| }
|
|
|
| @@ -144,7 +134,7 @@ LocalInputMonitorWin::Core::~Core() {
|
| DCHECK(!atom_);
|
| DCHECK(!instance_);
|
| DCHECK(!window_);
|
| - DCHECK(!mouse_move_observer_);
|
| + DCHECK(!delegate_);
|
| }
|
|
|
| void LocalInputMonitorWin::Core::StartOnUiThread() {
|
| @@ -196,8 +186,8 @@ void LocalInputMonitorWin::Core::OnLocalMouseMoved(const SkIPoint& position) {
|
| return;
|
| }
|
|
|
| - if (mouse_move_observer_)
|
| - mouse_move_observer_->OnLocalMouseMoved(position);
|
| + if (delegate_)
|
| + delegate_->OnLocalMouseMoved(position);
|
| }
|
|
|
| LRESULT LocalInputMonitorWin::Core::OnCreate(HWND hwnd) {
|
| @@ -291,9 +281,11 @@ LRESULT CALLBACK LocalInputMonitorWin::Core::WindowProc(
|
| scoped_ptr<LocalInputMonitor> LocalInputMonitor::Create(
|
| scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
|
| + SessionController::Delegate* delegate) {
|
| return scoped_ptr<LocalInputMonitor>(
|
| - new LocalInputMonitorWin(caller_task_runner, ui_task_runner));
|
| + new LocalInputMonitorWin(caller_task_runner, ui_task_runner,
|
| + delegate));
|
| }
|
|
|
| } // namespace remoting
|
|
|