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

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: Merge with refactoring CL 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
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..ad2d2f6be178728f4d7fa5d648fd1c41febc53f3 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,21 @@ 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);
+ std::map<ui::Accelerator, InternalData>::const_iterator iter =
+ accelerators_.find(accelerator);
+ if (iter != accelerators_.end())
+ accelerators_.erase(iter);
pkotwicz 2014/10/15 17:00:33 Can you just do accelerators_.erase(accelerator) a
Greg Levin 2014/10/15 20:56:13 Done.
+}
+
// static
AcceleratorManager* AcceleratorManager::Get() {
return InputManager::Get()->GetAcceleratorManager();

Powered by Google App Engine
This is Rietveld 408576698