Chromium Code Reviews| Index: chrome/browser/ui/views/apps/desktop_keyboard_capture.cc |
| diff --git a/chrome/browser/ui/views/apps/desktop_keyboard_capture.cc b/chrome/browser/ui/views/apps/desktop_keyboard_capture.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..32a203d2b44d4afde2674ee3e1feaa664776ef93 |
| --- /dev/null |
| +++ b/chrome/browser/ui/views/apps/desktop_keyboard_capture.cc |
| @@ -0,0 +1,41 @@ |
| +// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
|
benwells
2014/11/21 00:52:00
Nit: no (c)
Sriram
2014/11/21 05:35:20
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/ui/views/apps/desktop_keyboard_capture.h" |
| +#include "chrome/browser/ui/views/apps/keyboard_hook_handler.h" |
| + |
| +DesktopKeyboardCapture::DesktopKeyboardCapture(views::Widget* widget) |
| + : widget_(widget), |
| + is_registered_(false) { |
| + widget_->AddObserver(this); |
| + |
| + if (widget_->IsActive()) |
| + RegisterKeyboardHooks(); |
| +} |
| + |
| +DesktopKeyboardCapture::~DesktopKeyboardCapture() { |
| + if (is_registered_) |
| + DeregisterKeyboardHooks(); |
| + |
| + widget_->RemoveObserver(this); |
| +} |
| + |
| +void DesktopKeyboardCapture::RegisterKeyboardHooks() { |
| + KeyboardHookHandler::GetInstance()->Register(widget_); |
| + is_registered_ = true; |
| +} |
| + |
| +void DesktopKeyboardCapture::DeregisterKeyboardHooks() { |
| + KeyboardHookHandler::GetInstance()->Deregister(widget_); |
| + is_registered_ = false; |
| +} |
| + |
| +void DesktopKeyboardCapture::OnWidgetActivationChanged(views::Widget* widget, |
| + bool active) { |
| + if (active) { |
| + RegisterKeyboardHooks(); |
| + } else { |
| + DeregisterKeyboardHooks(); |
| + } |
| +} |