OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "mash/browser_driver/browser_driver_application_delegate.h" | 5 #include "mash/browser_driver/browser_driver_application_delegate.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "components/mus/public/cpp/event_matcher.h" | 10 #include "components/mus/public/cpp/event_matcher.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 } | 77 } |
78 | 78 |
79 void BrowserDriverApplicationDelegate::AddAccelerators() { | 79 void BrowserDriverApplicationDelegate::AddAccelerators() { |
80 // TODO(beng): find some other way to get the window manager. I don't like | 80 // TODO(beng): find some other way to get the window manager. I don't like |
81 // having to specify it by URL because it may differ per display. | 81 // having to specify it by URL because it may differ per display. |
82 mus::mojom::AcceleratorRegistrarPtr registrar; | 82 mus::mojom::AcceleratorRegistrarPtr registrar; |
83 app_->ConnectToService("mojo:desktop_wm", ®istrar); | 83 app_->ConnectToService("mojo:desktop_wm", ®istrar); |
84 | 84 |
85 if (binding_.is_bound()) | 85 if (binding_.is_bound()) |
86 binding_.Unbind(); | 86 binding_.Unbind(); |
| 87 registrar->SetHandler(binding_.CreateInterfacePtrAndBind()); |
87 // If the window manager restarts, the handler pipe will close and we'll need | 88 // If the window manager restarts, the handler pipe will close and we'll need |
88 // to re-add our accelerators when the window manager comes back up. | 89 // to re-add our accelerators when the window manager comes back up. |
89 binding_.set_connection_error_handler( | 90 binding_.set_connection_error_handler( |
90 base::Bind(&BrowserDriverApplicationDelegate::AddAccelerators, | 91 base::Bind(&BrowserDriverApplicationDelegate::AddAccelerators, |
91 base::Unretained(this))); | 92 base::Unretained(this))); |
92 registrar->SetHandler(binding_.CreateInterfacePtrAndBind()); | |
93 | 93 |
94 for (const AcceleratorSpec& spec : g_spec) { | 94 for (const AcceleratorSpec& spec : g_spec) { |
95 registrar->AddAccelerator( | 95 registrar->AddAccelerator( |
96 static_cast<uint32_t>(spec.id), | 96 static_cast<uint32_t>(spec.id), |
97 mus::CreateKeyMatcher(spec.keyboard_code, spec.event_flags), | 97 mus::CreateKeyMatcher(spec.keyboard_code, spec.event_flags), |
98 base::Bind(&AssertTrue)); | 98 base::Bind(&AssertTrue)); |
99 } | 99 } |
100 } | 100 } |
101 | 101 |
102 } // namespace browser_driver | 102 } // namespace browser_driver |
103 } // namespace main | 103 } // namespace main |
OLD | NEW |