| Index: ash/mus/accelerators/accelerator_registrar_impl.h
|
| diff --git a/ash/mus/accelerators/accelerator_registrar_impl.h b/ash/mus/accelerators/accelerator_registrar_impl.h
|
| index 39940ee7738a56eef47cd341fac99b9efc675b22..6816ab1a4b839fa4df542fb022bd51abcd9e5d74 100644
|
| --- a/ash/mus/accelerators/accelerator_registrar_impl.h
|
| +++ b/ash/mus/accelerators/accelerator_registrar_impl.h
|
| @@ -16,6 +16,7 @@
|
| #include "mojo/public/cpp/bindings/binding_set.h"
|
| #include "mojo/public/cpp/bindings/strong_binding.h"
|
| #include "services/ui/public/interfaces/accelerator_registrar.mojom.h"
|
| +#include "ui/base/accelerators/accelerator.h"
|
|
|
| namespace ash {
|
| namespace mus {
|
| @@ -28,7 +29,8 @@ class WindowManager;
|
| // destruction, it calls the DestroyCallback.
|
| class AcceleratorRegistrarImpl : public ::ui::mojom::AcceleratorRegistrar,
|
| public WindowManagerObserver,
|
| - public AcceleratorHandler {
|
| + public AcceleratorHandler,
|
| + public ui::AcceleratorTarget {
|
| public:
|
| using DestroyCallback = base::Callback<void(AcceleratorRegistrarImpl*)>;
|
| AcceleratorRegistrarImpl(WindowManager* window_manager,
|
| @@ -52,6 +54,12 @@ class AcceleratorRegistrarImpl : public ::ui::mojom::AcceleratorRegistrar,
|
|
|
| void RemoveAllAccelerators();
|
|
|
| + // If |matcher| identifies a key-binding accelerator registers it and
|
| + // returns true, returns false otherwise.
|
| + bool AddAcceleratorForKeyBinding(uint32_t accelerator_id,
|
| + const ::ui::mojom::EventMatcher& matcher,
|
| + const AddAcceleratorCallback& callback);
|
| +
|
| // ::ui::mojom::AcceleratorRegistrar:
|
| void SetHandler(::ui::mojom::AcceleratorHandlerPtr handler) override;
|
| void AddAccelerator(uint32_t accelerator_id,
|
| @@ -66,13 +74,22 @@ class AcceleratorRegistrarImpl : public ::ui::mojom::AcceleratorRegistrar,
|
| // WindowManagerObserver:
|
| void OnWindowTreeClientDestroyed() override;
|
|
|
| + // AcceleratorTarget:
|
| + bool AcceleratorPressed(const ui::Accelerator& accelerator) override;
|
| + bool CanHandleAccelerators() const override;
|
| +
|
| WindowManager* window_manager_;
|
| ::ui::mojom::AcceleratorHandlerPtr accelerator_handler_;
|
| mojo::Binding<AcceleratorRegistrar> binding_;
|
| uint16_t accelerator_namespace_;
|
| + // Only contains non-keyboard accelerators.
|
| std::set<uint32_t> accelerators_;
|
| DestroyCallback destroy_callback_;
|
|
|
| + // Used only for keyboard accelerators.
|
| + std::map<ui::Accelerator, uint16_t> keyboard_accelerator_to_id_;
|
| + std::map<uint16_t, ui::Accelerator> id_to_keyboard_accelerator_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(AcceleratorRegistrarImpl);
|
| };
|
|
|
|
|