Index: ui/views/mus/input_method_mus.cc |
diff --git a/ui/views/mus/input_method_mus.cc b/ui/views/mus/input_method_mus.cc |
deleted file mode 100644 |
index 1344e74e2128ab94a9a075313b94c68fc8c05c44..0000000000000000000000000000000000000000 |
--- a/ui/views/mus/input_method_mus.cc |
+++ /dev/null |
@@ -1,165 +0,0 @@ |
-// Copyright (c) 2015 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. |
- |
-#include "ui/views/mus/input_method_mus.h" |
- |
-#include <utility> |
- |
-#include "base/memory/ptr_util.h" |
-#include "services/ui/public/cpp/window.h" |
-#include "services/ui/public/interfaces/constants.mojom.h" |
-#include "services/ui/public/interfaces/ime/ime.mojom.h" |
-#include "ui/base/ime/text_input_client.h" |
-#include "ui/events/event.h" |
-#include "ui/platform_window/mojo/ime_type_converters.h" |
-#include "ui/platform_window/mojo/text_input_state.mojom.h" |
-#include "ui/views/mus/text_input_client_impl.h" |
- |
-using ui::mojom::EventResult; |
- |
-namespace views { |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// InputMethodMus, public: |
- |
-InputMethodMus::InputMethodMus(ui::internal::InputMethodDelegate* delegate, |
- ui::Window* window) |
- : window_(window) { |
- SetDelegate(delegate); |
-} |
- |
-InputMethodMus::~InputMethodMus() {} |
- |
-void InputMethodMus::Init(service_manager::Connector* connector) { |
- connector->ConnectToInterface(ui::mojom::kServiceName, &ime_server_); |
-} |
- |
-void InputMethodMus::DispatchKeyEvent( |
- ui::KeyEvent* event, |
- std::unique_ptr<base::Callback<void(EventResult)>> ack_callback) { |
- DCHECK(event->type() == ui::ET_KEY_PRESSED || |
- event->type() == ui::ET_KEY_RELEASED); |
- |
- // If no text input client, do nothing. |
- if (!GetTextInputClient()) { |
- ignore_result(DispatchKeyEventPostIME(event)); |
- if (ack_callback) { |
- ack_callback->Run(event->handled() ? EventResult::HANDLED |
- : EventResult::UNHANDLED); |
- } |
- return; |
- } |
- |
- // IME driver will notify us whether it handled the event or not by calling |
- // ProcessKeyEventCallback(), in which we will run the |ack_callback| to tell |
- // the window server if client handled the event or not. |
- input_method_->ProcessKeyEvent( |
- ui::Event::Clone(*event), |
- base::Bind(&InputMethodMus::ProcessKeyEventCallback, |
- base::Unretained(this), *event, Passed(&ack_callback))); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// InputMethodMus, ui::InputMethod implementation: |
- |
-void InputMethodMus::OnFocus() { |
- InputMethodBase::OnFocus(); |
- UpdateTextInputType(); |
-} |
- |
-void InputMethodMus::OnBlur() { |
- InputMethodBase::OnBlur(); |
- UpdateTextInputType(); |
-} |
- |
-bool InputMethodMus::OnUntranslatedIMEMessage(const base::NativeEvent& event, |
- NativeEventResult* result) { |
- // This method is not called on non-Windows platforms. See the comments for |
- // ui::InputMethod::OnUntranslatedIMEMessage(). |
- return false; |
-} |
- |
-void InputMethodMus::DispatchKeyEvent(ui::KeyEvent* event) { |
- DispatchKeyEvent(event, nullptr); |
-} |
- |
-void InputMethodMus::OnTextInputTypeChanged(const ui::TextInputClient* client) { |
- if (IsTextInputClientFocused(client)) |
- UpdateTextInputType(); |
- InputMethodBase::OnTextInputTypeChanged(client); |
- |
- if (input_method_) { |
- input_method_->OnTextInputTypeChanged( |
- static_cast<ui::mojom::TextInputType>(client->GetTextInputType())); |
- } |
-} |
- |
-void InputMethodMus::OnCaretBoundsChanged(const ui::TextInputClient* client) { |
- if (input_method_) |
- input_method_->OnCaretBoundsChanged(client->GetCaretBounds()); |
-} |
- |
-void InputMethodMus::CancelComposition(const ui::TextInputClient* client) { |
- if (input_method_) |
- input_method_->CancelComposition(); |
-} |
- |
-void InputMethodMus::OnInputLocaleChanged() { |
- // TODO(moshayedi): crbug.com/637418. Not supported in ChromeOS. Investigate |
- // whether we want to support this or not. |
-} |
- |
-bool InputMethodMus::IsCandidatePopupOpen() const { |
- // TODO(moshayedi): crbug.com/637416. Implement this properly when we have a |
- // mean for displaying candidate list popup. |
- return false; |
-} |
- |
-void InputMethodMus::OnDidChangeFocusedClient( |
- ui::TextInputClient* focused_before, |
- ui::TextInputClient* focused) { |
- InputMethodBase::OnDidChangeFocusedClient(focused_before, focused); |
- UpdateTextInputType(); |
- |
- text_input_client_ = base::MakeUnique<TextInputClientImpl>(focused); |
- ime_server_->StartSession(text_input_client_->CreateInterfacePtrAndBind(), |
- MakeRequest(&input_method_)); |
-} |
- |
-void InputMethodMus::UpdateTextInputType() { |
- ui::TextInputType type = GetTextInputType(); |
- mojo::TextInputStatePtr state = mojo::TextInputState::New(); |
- state->type = mojo::ConvertTo<mojo::TextInputType>(type); |
- if (window_) { |
- if (type != ui::TEXT_INPUT_TYPE_NONE) |
- window_->SetImeVisibility(true, std::move(state)); |
- else |
- window_->SetTextInputState(std::move(state)); |
- } |
-} |
- |
-void InputMethodMus::ProcessKeyEventCallback( |
- const ui::KeyEvent& event, |
- std::unique_ptr<base::Callback<void(EventResult)>> ack_callback, |
- bool handled) { |
- EventResult event_result; |
- if (!handled) { |
- // If not handled by IME, try dispatching the event to delegate to see if |
- // any client-side post-ime processing needs to be done. This includes cases |
- // like backspace, return key, etc. |
- std::unique_ptr<ui::Event> event_clone = ui::Event::Clone(event); |
- ignore_result(DispatchKeyEventPostIME(event_clone->AsKeyEvent())); |
- event_result = |
- event_clone->handled() ? EventResult::HANDLED : EventResult::UNHANDLED; |
- } else { |
- event_result = EventResult::HANDLED; |
- } |
- // |ack_callback| can be null if the standard form of DispatchKeyEvent() is |
- // called instead of the version which provides a callback. In mus+ash we |
- // use the version with callback, but some unittests use the standard form. |
- if (ack_callback) |
- ack_callback->Run(event_result); |
-} |
- |
-} // namespace views |