Index: chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h |
diff --git a/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h b/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h |
index 7f5a902f20b81f90b664df0b287d89b7f09ddf41..a1d6af73a18938af6f0ff1ccebeb543294fb68f2 100644 |
--- a/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h |
+++ b/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h |
@@ -10,6 +10,8 @@ |
#include "base/compiler_specific.h" |
#include "chrome/browser/extensions/extension_keybinding_registry.h" |
#include "ui/base/accelerators/accelerator.h" |
+#include "ui/events/event_handler.h" |
+#include "ui/views/widget/widget_observer.h" |
class Profile; |
@@ -18,7 +20,9 @@ class Extension; |
} |
namespace views { |
+class EventMonitor; |
class FocusManager; |
+class Widget; |
} |
// ExtensionKeybindingRegistryViews is a class that handles Views-specific |
@@ -29,14 +33,22 @@ class FocusManager; |
// BrowserEventRouter. |
class ExtensionKeybindingRegistryViews |
: public extensions::ExtensionKeybindingRegistry, |
+ public views::WidgetObserver, |
+ public ui::EventHandler, |
public ui::AcceleratorTarget { |
public: |
ExtensionKeybindingRegistryViews(Profile* profile, |
- views::FocusManager* focus_manager, |
+ views::Widget* widget, |
ExtensionFilter extension_filter, |
Delegate* delegate); |
~ExtensionKeybindingRegistryViews() override; |
+ // Overridden from views::WidgetObserver: |
+ void OnWidgetDestroying(views::Widget* widget) override; |
+ |
+ // Overridden from ui::EventHandler: |
+ void OnKeyEvent(ui::KeyEvent* event) override; |
+ |
// Overridden from ui::AcceleratorTarget. |
bool AcceleratorPressed(const ui::Accelerator& accelerator) override; |
bool CanHandleAccelerators() const override; |
@@ -51,6 +63,9 @@ class ExtensionKeybindingRegistryViews |
// Weak pointer to the our profile. Not owned by us. |
Profile* profile_; |
+ // Used for disabling accelerator processing during shortcut recording. |
+ scoped_ptr<views::EventMonitor> event_tap_; |
+ |
// Weak pointer back to the focus manager to use to register and unregister |
// accelerators with. Not owned by us. |
views::FocusManager* focus_manager_; |