Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(412)

Unified Diff: athena/input/accelerator_manager_impl.cc

Issue 601333002: ESC accelerator and consistent overview mode for Athena homecard (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « athena/input/accelerator_manager_impl.h ('k') | athena/input/public/accelerator_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/input/accelerator_manager_impl.cc
diff --git a/athena/input/accelerator_manager_impl.cc b/athena/input/accelerator_manager_impl.cc
index 196a3d564bb6c61b7726b0b72ab16f00d01b0026..bd6fbe636adb16dcc3bf763bcc0da7b424708adc 100644
--- a/athena/input/accelerator_manager_impl.cc
+++ b/athena/input/accelerator_manager_impl.cc
@@ -29,6 +29,8 @@ class AcceleratorManagerImpl::AcceleratorWrapper {
virtual ~AcceleratorWrapper() {}
virtual void Register(const ui::Accelerator& accelerator,
ui::AcceleratorTarget* target) = 0;
+ virtual void Unregister(const ui::Accelerator& accelerator,
+ ui::AcceleratorTarget* target) = 0;
virtual bool Process(const ui::Accelerator& accelerator) = 0;
virtual ui::AcceleratorTarget* GetCurrentTarget(
const ui::Accelerator& accelertor) const = 0;
@@ -142,10 +144,15 @@ class UIAcceleratorManagerWrapper
virtual void Register(const ui::Accelerator& accelerator,
ui::AcceleratorTarget* target) override {
- return ui_accelerator_manager_->Register(
+ ui_accelerator_manager_->Register(
accelerator, ui::AcceleratorManager::kNormalPriority, target);
}
+ virtual void Unregister(const ui::Accelerator& accelerator,
+ ui::AcceleratorTarget* target) override {
+ ui_accelerator_manager_->Unregister(accelerator, target);
+ }
+
virtual bool Process(const ui::Accelerator& accelerator) override {
return ui_accelerator_manager_->Process(accelerator);
}
@@ -173,6 +180,11 @@ class FocusManagerWrapper : public AcceleratorManagerImpl::AcceleratorWrapper {
accelerator, ui::AcceleratorManager::kNormalPriority, target);
}
+ virtual void Unregister(const ui::Accelerator& accelerator,
+ ui::AcceleratorTarget* target) override {
+ focus_manager_->UnregisterAccelerator(accelerator, target);
+ }
+
virtual bool Process(const ui::Accelerator& accelerator) override {
NOTREACHED();
return true;
@@ -324,6 +336,18 @@ void AcceleratorManagerImpl::RegisterAccelerator(
accelerator_data.accelerator_flags)));
}
+void AcceleratorManagerImpl::UnregisterAccelerator(
+ const AcceleratorData& accelerator_data,
+ AcceleratorHandler* handler) {
+ ui::Accelerator accelerator(accelerator_data.keycode,
+ accelerator_data.keyevent_flags);
+ accelerator.set_type(accelerator_data.trigger_event == TRIGGER_ON_PRESS
+ ? ui::ET_KEY_PRESSED
+ : ui::ET_KEY_RELEASED);
+ accelerator_wrapper_->Unregister(accelerator, this);
+ accelerators_.erase(accelerator);
+}
+
// static
AcceleratorManager* AcceleratorManager::Get() {
return InputManager::Get()->GetAcceleratorManager();
« no previous file with comments | « athena/input/accelerator_manager_impl.h ('k') | athena/input/public/accelerator_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698