| Index: remoting/host/clipboard_win.cc
|
| diff --git a/remoting/host/clipboard_win.cc b/remoting/host/clipboard_win.cc
|
| index b3fc0c10effe4a647f671110859bcb7c3b2ef430..61bd5a6a078ab8ad1198dd86d524664d0ab55964 100644
|
| --- a/remoting/host/clipboard_win.cc
|
| +++ b/remoting/host/clipboard_win.cc
|
| @@ -103,7 +103,8 @@ class ClipboardWin : public Clipboard {
|
| public:
|
| ClipboardWin();
|
|
|
| - virtual void Start() OVERRIDE;
|
| + virtual void Start(
|
| + const scoped_refptr<protocol::ClipboardProxy>& client_clipboard) OVERRIDE;
|
| virtual void InjectClipboardEvent(
|
| const protocol::ClipboardEvent& event) OVERRIDE;
|
| virtual void Stop() OVERRIDE;
|
| @@ -116,6 +117,7 @@ class ClipboardWin : public Clipboard {
|
| static LRESULT CALLBACK WndProc(HWND hwmd, UINT msg, WPARAM wParam,
|
| LPARAM lParam);
|
|
|
| + scoped_refptr<protocol::ClipboardProxy> client_clipboard_;
|
| HWND hwnd_;
|
| AddClipboardFormatListenerFn* add_clipboard_format_listener_;
|
| RemoveClipboardFormatListenerFn* remove_clipboard_format_listener_;
|
| @@ -131,7 +133,10 @@ ClipboardWin::ClipboardWin()
|
| load_functions_tried_(false) {
|
| }
|
|
|
| -void ClipboardWin::Start() {
|
| +void ClipboardWin::Start(
|
| + const scoped_refptr<protocol::ClipboardProxy>& client_clipboard) {
|
| + client_clipboard_ = client_clipboard;
|
| +
|
| if (!load_functions_tried_) {
|
| load_functions_tried_ = true;
|
| HMODULE user32_module = ::GetModuleHandle(L"user32.dll");
|
| @@ -175,6 +180,8 @@ void ClipboardWin::Start() {
|
| }
|
|
|
| void ClipboardWin::Stop() {
|
| + client_clipboard_ = NULL;
|
| +
|
| if (hwnd_) {
|
| if (HaveClipboardListenerApi()) {
|
| (*remove_clipboard_format_listener_)(hwnd_);
|
| @@ -252,7 +259,9 @@ void ClipboardWin::OnClipboardUpdate() {
|
| event.set_mime_type(kMimeTypeTextUtf8);
|
| event.set_data(UTF16ToUTF8(text));
|
|
|
| - // TODO(simonmorris): Send the event to the client.
|
| + if (client_clipboard_.get()) {
|
| + client_clipboard_->InjectClipboardEvent(event);
|
| + }
|
| }
|
| }
|
|
|
|
|