OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "athena/input/accelerator_manager_impl.h" | 5 #include "athena/input/accelerator_manager_impl.h" |
6 | 6 |
7 #include "athena/input/public/input_manager.h" | 7 #include "athena/input/public/input_manager.h" |
8 #include "athena/util/switches.h" | 8 #include "athena/util/switches.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "ui/aura/window.h" | 10 #include "ui/aura/window.h" |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 views::FocusManagerFactory::Install(new FocusManagerFactory(this)); | 255 views::FocusManagerFactory::Install(new FocusManagerFactory(this)); |
256 | 256 |
257 ui::EventTarget* toplevel = InputManager::Get()->GetTopmostEventTarget(); | 257 ui::EventTarget* toplevel = InputManager::Get()->GetTopmostEventTarget(); |
258 nested_accelerator_controller_.reset( | 258 nested_accelerator_controller_.reset( |
259 new wm::NestedAcceleratorController(new NestedAcceleratorDelegate(this))); | 259 new wm::NestedAcceleratorController(new NestedAcceleratorDelegate(this))); |
260 | 260 |
261 scoped_ptr<wm::AcceleratorDelegate> accelerator_delegate( | 261 scoped_ptr<wm::AcceleratorDelegate> accelerator_delegate( |
262 new AcceleratorDelegate(this)); | 262 new AcceleratorDelegate(this)); |
263 | 263 |
264 accelerator_filter_.reset( | 264 accelerator_filter_.reset( |
265 new wm::AcceleratorFilter(accelerator_delegate.Pass())); | 265 new wm::AcceleratorFilter(accelerator_delegate.Pass(), |
| 266 accelerator_history_.get())); |
266 toplevel->AddPreTargetHandler(accelerator_filter_.get()); | 267 toplevel->AddPreTargetHandler(accelerator_filter_.get()); |
267 } | 268 } |
268 | 269 |
269 void AcceleratorManagerImpl::OnRootWindowCreated(aura::Window* root_window) { | 270 void AcceleratorManagerImpl::OnRootWindowCreated(aura::Window* root_window) { |
270 aura::client::SetDispatcherClient(root_window, | 271 aura::client::SetDispatcherClient(root_window, |
271 nested_accelerator_controller_.get()); | 272 nested_accelerator_controller_.get()); |
272 } | 273 } |
273 | 274 |
274 bool AcceleratorManagerImpl::Process(const ui::Accelerator& accelerator) { | 275 bool AcceleratorManagerImpl::Process(const ui::Accelerator& accelerator) { |
275 return accelerator_wrapper_->Process(accelerator); | 276 return accelerator_wrapper_->Process(accelerator); |
276 } | 277 } |
277 | 278 |
278 bool AcceleratorManagerImpl::IsRegistered(const ui::Accelerator& accelerator, | 279 bool AcceleratorManagerImpl::IsRegistered(const ui::Accelerator& accelerator, |
279 int flags) const { | 280 int flags) const { |
280 std::map<ui::Accelerator, InternalData>::const_iterator iter = | 281 std::map<ui::Accelerator, InternalData>::const_iterator iter = |
281 accelerators_.find(accelerator); | 282 accelerators_.find(accelerator); |
282 if (iter == accelerators_.end()) | 283 if (iter == accelerators_.end()) |
283 return false; | 284 return false; |
284 DCHECK(accelerator_wrapper_->GetCurrentTarget(accelerator)); | 285 DCHECK(accelerator_wrapper_->GetCurrentTarget(accelerator)); |
285 return flags == AF_NONE || iter->second.flags() & flags; | 286 return flags == AF_NONE || iter->second.flags() & flags; |
286 } | 287 } |
287 | 288 |
288 AcceleratorManagerImpl::AcceleratorManagerImpl( | 289 AcceleratorManagerImpl::AcceleratorManagerImpl( |
289 AcceleratorWrapper* accelerator_wrapper, | 290 AcceleratorWrapper* accelerator_wrapper, |
290 bool global) | 291 bool global) |
291 : accelerator_wrapper_(accelerator_wrapper), | 292 : accelerator_wrapper_(accelerator_wrapper), |
| 293 accelerator_history_(new ui::AcceleratorHistory), |
292 debug_accelerators_enabled_(switches::IsDebugAcceleratorsEnabled()), | 294 debug_accelerators_enabled_(switches::IsDebugAcceleratorsEnabled()), |
293 global_(global) { | 295 global_(global) { |
294 } | 296 } |
295 | 297 |
296 void AcceleratorManagerImpl::RegisterAccelerators( | 298 void AcceleratorManagerImpl::RegisterAccelerators( |
297 const AcceleratorData accelerators[], | 299 const AcceleratorData accelerators[], |
298 size_t num_accelerators, | 300 size_t num_accelerators, |
299 AcceleratorHandler* handler) { | 301 AcceleratorHandler* handler) { |
300 for (size_t i = 0; i < num_accelerators; ++i) | 302 for (size_t i = 0; i < num_accelerators; ++i) |
301 RegisterAccelerator(accelerators[i], handler); | 303 RegisterAccelerator(accelerators[i], handler); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 return InputManager::Get()->GetAcceleratorManager(); | 359 return InputManager::Get()->GetAcceleratorManager(); |
358 } | 360 } |
359 | 361 |
360 // static | 362 // static |
361 scoped_ptr<AcceleratorManager> AcceleratorManager::CreateForFocusManager( | 363 scoped_ptr<AcceleratorManager> AcceleratorManager::CreateForFocusManager( |
362 views::FocusManager* focus_manager) { | 364 views::FocusManager* focus_manager) { |
363 return AcceleratorManagerImpl::CreateForFocusManager(focus_manager).Pass(); | 365 return AcceleratorManagerImpl::CreateForFocusManager(focus_manager).Pass(); |
364 } | 366 } |
365 | 367 |
366 } // namespace athena | 368 } // namespace athena |
OLD | NEW |