Chromium Code Reviews| Index: ash/common/accelerators/accelerator_router.h |
| diff --git a/ash/common/accelerators/accelerator_router.h b/ash/common/accelerators/accelerator_router.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2f1d68e90828cbe8a35ed38edb85a55a265d30ed |
| --- /dev/null |
| +++ b/ash/common/accelerators/accelerator_router.h |
| @@ -0,0 +1,50 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef ASH_ACCELERATORS_ACCELERATOR_ROUTER_H_ |
| +#define ASH_ACCELERATORS_ACCELERATOR_ROUTER_H_ |
| + |
| +#include "ash/ash_export.h" |
| +#include "base/macros.h" |
| + |
| +namespace ui { |
| +class Accelerator; |
| +class KeyEvent; |
| +} |
| + |
| +namespace ash { |
| + |
| +class WmWindow; |
| + |
| +// AcceleratorRouter does a minimal amount of processing before routing the |
| +// accelerator to the AcceleratorController. AcceleratorRouter may also decide |
| +// not to process certain accelerators. |
| +class ASH_EXPORT AcceleratorRouter { |
| + public: |
| + AcceleratorRouter(); |
| + ~AcceleratorRouter(); |
| + |
| + // Returns true if event should be consumed. |target| is the target of the |
| + // event. |
| + bool ProcessAccelerator(WmWindow* target, |
| + const ui::KeyEvent& event, |
| + const ui::Accelerator& accelerator); |
| + |
| + private: |
| + // Returns true if the window should be allowed a chance to handle |
| + // system keys. |
| + bool CanConsumeSystemKeys(WmWindow* target, const ui::KeyEvent& event); |
| + |
| + // Returns true if the |accelerator| should be processed now, inside Ash's env |
| + // event filter. |
|
James Cook
2016/07/22 16:48:02
Is it still true that ash has an env event filter?
sky
2016/07/22 17:05:06
Updated comment (removed portion after ',').
|
| + bool ShouldProcessAcceleratorNow(WmWindow* target, |
| + const ui::KeyEvent& event, |
| + const ui::Accelerator& accelerator); |
| + |
| + DISALLOW_COPY_AND_ASSIGN(AcceleratorRouter); |
| +}; |
| + |
| +} // namespace ash |
| + |
| +#endif // ASH_ACCELERATORS_ACCELERATOR_ROUTER_H_ |