| OLD | NEW |
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "ui/views/mus/input_method_mus.h" | 5 #include "ui/aura/mus/input_method_mus.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "services/ui/public/cpp/window.h" | |
| 10 #include "services/ui/public/interfaces/ime.mojom.h" | 9 #include "services/ui/public/interfaces/ime.mojom.h" |
| 10 #include "services/ui/public/interfaces/window_tree_constants.mojom.h" |
| 11 #include "ui/aura/mus/text_input_client_impl.h" |
| 12 #include "ui/aura/mus/window_port_mus.h" |
| 13 #include "ui/aura/window.h" |
| 11 #include "ui/base/ime/text_input_client.h" | 14 #include "ui/base/ime/text_input_client.h" |
| 12 #include "ui/events/event.h" | 15 #include "ui/events/event.h" |
| 13 #include "ui/platform_window/mojo/ime_type_converters.h" | 16 #include "ui/platform_window/mojo/ime_type_converters.h" |
| 14 #include "ui/platform_window/mojo/text_input_state.mojom.h" | 17 #include "ui/platform_window/mojo/text_input_state.mojom.h" |
| 15 #include "ui/views/mus/text_input_client_impl.h" | |
| 16 | 18 |
| 17 using ui::mojom::EventResult; | 19 using ui::mojom::EventResult; |
| 18 | 20 |
| 19 namespace views { | 21 namespace aura { |
| 20 | 22 |
| 21 //////////////////////////////////////////////////////////////////////////////// | 23 //////////////////////////////////////////////////////////////////////////////// |
| 22 // InputMethodMus, public: | 24 // InputMethodMus, public: |
| 23 | 25 |
| 24 InputMethodMus::InputMethodMus(ui::internal::InputMethodDelegate* delegate, | 26 InputMethodMus::InputMethodMus(ui::internal::InputMethodDelegate* delegate, |
| 25 ui::Window* window) | 27 Window* window) |
| 26 : window_(window) { | 28 : window_(window) { |
| 27 SetDelegate(delegate); | 29 SetDelegate(delegate); |
| 28 } | 30 } |
| 29 | 31 |
| 30 InputMethodMus::~InputMethodMus() {} | 32 InputMethodMus::~InputMethodMus() {} |
| 31 | 33 |
| 32 void InputMethodMus::Init(service_manager::Connector* connector) { | 34 void InputMethodMus::Init(service_manager::Connector* connector) { |
| 33 connector->ConnectToInterface("service:ui", &ime_server_); | 35 connector->ConnectToInterface("service:ui", &ime_server_); |
| 34 } | 36 } |
| 35 | 37 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 text_input_client_ = base::MakeUnique<TextInputClientImpl>(focused); | 125 text_input_client_ = base::MakeUnique<TextInputClientImpl>(focused); |
| 124 ime_server_->StartSession(text_input_client_->CreateInterfacePtrAndBind(), | 126 ime_server_->StartSession(text_input_client_->CreateInterfacePtrAndBind(), |
| 125 GetProxy(&input_method_)); | 127 GetProxy(&input_method_)); |
| 126 } | 128 } |
| 127 | 129 |
| 128 void InputMethodMus::UpdateTextInputType() { | 130 void InputMethodMus::UpdateTextInputType() { |
| 129 ui::TextInputType type = GetTextInputType(); | 131 ui::TextInputType type = GetTextInputType(); |
| 130 mojo::TextInputStatePtr state = mojo::TextInputState::New(); | 132 mojo::TextInputStatePtr state = mojo::TextInputState::New(); |
| 131 state->type = mojo::ConvertTo<mojo::TextInputType>(type); | 133 state->type = mojo::ConvertTo<mojo::TextInputType>(type); |
| 132 if (window_) { | 134 if (window_) { |
| 135 WindowPortMus* window_impl_mus = WindowPortMus::Get(window_); |
| 133 if (type != ui::TEXT_INPUT_TYPE_NONE) | 136 if (type != ui::TEXT_INPUT_TYPE_NONE) |
| 134 window_->SetImeVisibility(true, std::move(state)); | 137 window_impl_mus->SetImeVisibility(true, std::move(state)); |
| 135 else | 138 else |
| 136 window_->SetTextInputState(std::move(state)); | 139 window_impl_mus->SetTextInputState(std::move(state)); |
| 137 } | 140 } |
| 138 } | 141 } |
| 139 | 142 |
| 140 void InputMethodMus::ProcessKeyEventCallback( | 143 void InputMethodMus::ProcessKeyEventCallback( |
| 141 const ui::KeyEvent& event, | 144 const ui::KeyEvent& event, |
| 142 std::unique_ptr<base::Callback<void(EventResult)>> ack_callback, | 145 std::unique_ptr<base::Callback<void(EventResult)>> ack_callback, |
| 143 bool handled) { | 146 bool handled) { |
| 144 EventResult event_result; | 147 EventResult event_result; |
| 145 if (!handled) { | 148 if (!handled) { |
| 146 // If not handled by IME, try dispatching the event to delegate to see if | 149 // If not handled by IME, try dispatching the event to delegate to see if |
| 147 // any client-side post-ime processing needs to be done. This includes cases | 150 // any client-side post-ime processing needs to be done. This includes cases |
| 148 // like backspace, return key, etc. | 151 // like backspace, return key, etc. |
| 149 std::unique_ptr<ui::Event> event_clone = ui::Event::Clone(event); | 152 std::unique_ptr<ui::Event> event_clone = ui::Event::Clone(event); |
| 150 ignore_result(DispatchKeyEventPostIME(event_clone->AsKeyEvent())); | 153 ignore_result(DispatchKeyEventPostIME(event_clone->AsKeyEvent())); |
| 151 event_result = | 154 event_result = |
| 152 event_clone->handled() ? EventResult::HANDLED : EventResult::UNHANDLED; | 155 event_clone->handled() ? EventResult::HANDLED : EventResult::UNHANDLED; |
| 153 } else { | 156 } else { |
| 154 event_result = EventResult::HANDLED; | 157 event_result = EventResult::HANDLED; |
| 155 } | 158 } |
| 156 // |ack_callback| can be null if the standard form of DispatchKeyEvent() is | 159 // |ack_callback| can be null if the standard form of DispatchKeyEvent() is |
| 157 // called instead of the version which provides a callback. In mus+ash we | 160 // called instead of the version which provides a callback. In mus+ash we |
| 158 // use the version with callback, but some unittests use the standard form. | 161 // use the version with callback, but some unittests use the standard form. |
| 159 if (ack_callback) | 162 if (ack_callback) |
| 160 ack_callback->Run(event_result); | 163 ack_callback->Run(event_result); |
| 161 } | 164 } |
| 162 | 165 |
| 163 } // namespace views | 166 } // namespace aura |
| OLD | NEW |