diff options
Diffstat (limited to 'chromium/ui/base/ime/linux')
-rw-r--r-- | chromium/ui/base/ime/linux/BUILD.gn | 9 | ||||
-rw-r--r-- | chromium/ui/base/ime/linux/input_method_auralinux.cc | 60 | ||||
-rw-r--r-- | chromium/ui/base/ime/linux/input_method_auralinux.h | 12 | ||||
-rw-r--r-- | chromium/ui/base/ime/linux/input_method_auralinux_unittest.cc | 22 |
4 files changed, 19 insertions, 84 deletions
diff --git a/chromium/ui/base/ime/linux/BUILD.gn b/chromium/ui/base/ime/linux/BUILD.gn index 01c9b24e6a7..dbef616118c 100644 --- a/chromium/ui/base/ime/linux/BUILD.gn +++ b/chromium/ui/base/ime/linux/BUILD.gn @@ -5,7 +5,14 @@ import("//build/config/jumbo.gni") import("//build/config/linux/pangocairo/pangocairo.gni") -assert(is_linux && !is_chromeos) +# Allows base/ime/linux to be built if it's just for making kythe annotations. +# This is used to generate cross references in codesearch. References are +# generated by building the ozone wayland backend on ChromiumOS, which +# normally we would not want to compile base/ime/linux for. We can't build +# both ozone and x11 on Linux yet, but when we can we should remove this. +# TODO(crbug.com/1085700): Remove || enable_kythe_annotations here. +import("//build/toolchain/kythe.gni") +assert((is_linux && !is_chromeos) || enable_kythe_annotations) jumbo_component("linux") { output_name = "ui_base_ime_linux" diff --git a/chromium/ui/base/ime/linux/input_method_auralinux.cc b/chromium/ui/base/ime/linux/input_method_auralinux.cc index 3f3663c3a51..de49a5b15f1 100644 --- a/chromium/ui/base/ime/linux/input_method_auralinux.cc +++ b/chromium/ui/base/ime/linux/input_method_auralinux.cc @@ -8,8 +8,6 @@ #include "base/bind.h" #include "base/environment.h" #include "ui/base/ime/constants.h" -#include "ui/base/ime/ime_bridge.h" -#include "ui/base/ime/ime_engine_handler_interface.h" #include "ui/base/ime/linux/linux_input_method_context_factory.h" #include "ui/base/ime/text_input_client.h" #include "ui/events/event.h" @@ -88,42 +86,9 @@ ui::EventDispatchDetails InputMethodAuraLinux::DispatchKeyEvent( } } - // If there's an active IME extension is listening to the key event, and the - // current text input client is not password input client, the key event - // should be dispatched to the extension engine in the two conditions: - // 1) |filtered| == false: the ET_KEY_PRESSED event of non-character key, - // or the ET_KEY_RELEASED event of all key. - // 2) |filtered| == true && NeedInsertChar(): the ET_KEY_PRESSED event of - // character key. - if (text_input_type_ != TEXT_INPUT_TYPE_PASSWORD && GetEngine() && - (!filtered || NeedInsertChar())) { - ui::IMEEngineHandlerInterface::KeyEventDoneCallback callback = - base::BindOnce(&InputMethodAuraLinux::ProcessKeyEventByEngineDone, - weak_ptr_factory_.GetWeakPtr(), - base::Owned(new ui::KeyEvent(*event)), filtered, - composition_changed_, - base::Owned(new ui::CompositionText(composition_)), - base::Owned(new base::string16(result_text_))); - GetEngine()->ProcessKeyEvent(*event, std::move(callback)); - return ui::EventDispatchDetails(); - } - return ProcessKeyEventDone(event, filtered, false); } -void InputMethodAuraLinux::ProcessKeyEventByEngineDone( - ui::KeyEvent* event, - bool filtered, - bool composition_changed, - ui::CompositionText* composition, - base::string16* result_text, - bool is_handled) { - composition_changed_ = composition_changed; - composition_ = *composition; - result_text_ = *result_text; - ignore_result(ProcessKeyEventDone(event, filtered, is_handled)); -} - ui::EventDispatchDetails InputMethodAuraLinux::ProcessKeyEventDone( ui::KeyEvent* event, bool filtered, @@ -248,22 +213,6 @@ void InputMethodAuraLinux::UpdateContextFocusState() { context_simple_->Focus(); else context_simple_->Blur(); - - if (!ui::IMEBridge::Get()) // IMEBridge could be null for tests. - return; - - ui::IMEEngineHandlerInterface::InputContext context( - GetTextInputType(), GetTextInputMode(), GetTextInputFlags(), - ui::TextInputClient::FOCUS_REASON_OTHER, GetClientShouldDoLearning()); - ui::IMEBridge::Get()->SetCurrentInputContext(context); - - ui::IMEEngineHandlerInterface* engine = GetEngine(); - if (engine) { - if (old_text_input_type != TEXT_INPUT_TYPE_NONE) - engine->FocusOut(); - if (text_input_type_ != TEXT_INPUT_TYPE_NONE) - engine->FocusIn(context); - } } void InputMethodAuraLinux::OnTextInputTypeChanged( @@ -286,19 +235,12 @@ void InputMethodAuraLinux::OnCaretBoundsChanged(const TextInputClient* client) { client->GetEditableSelectionRange(&selection_range)) { context_->SetSurroundingText(text, selection_range); } - - if (!IsTextInputTypeNone() && text_input_type_ != TEXT_INPUT_TYPE_PASSWORD && - GetEngine()) - GetEngine()->SetCompositionBounds(GetCompositionBounds(client)); } void InputMethodAuraLinux::CancelComposition(const TextInputClient* client) { if (!IsTextInputClientFocused(client)) return; - if (GetEngine()) - GetEngine()->Reset(); - ResetContext(); } @@ -457,8 +399,6 @@ void InputMethodAuraLinux::ConfirmCompositionText(bool reset_engine, NOTIMPLEMENTED_LOG_ONCE(); } InputMethodBase::ConfirmCompositionText(reset_engine, keep_selection); - if (reset_engine && GetEngine()) - GetEngine()->Reset(); ResetContext(); } diff --git a/chromium/ui/base/ime/linux/input_method_auralinux.h b/chromium/ui/base/ime/linux/input_method_auralinux.h index 294979dec2d..e560171df5b 100644 --- a/chromium/ui/base/ime/linux/input_method_auralinux.h +++ b/chromium/ui/base/ime/linux/input_method_auralinux.h @@ -65,18 +65,6 @@ class COMPONENT_EXPORT(UI_BASE_IME_LINUX) InputMethodAuraLinux bool is_handled) WARN_UNUSED_RESULT; - // Callback function for IMEEngineHandlerInterface::ProcessKeyEvent(). - // It recovers the context when the event is being passed to the extension and - // call ProcessKeyEventDone() for the following processing. This is necessary - // as this method is async. The environment may be changed by other generated - // key events by the time the callback is run. - void ProcessKeyEventByEngineDone(ui::KeyEvent* event, - bool filtered, - bool composition_changed, - ui::CompositionText* composition, - base::string16* result_text, - bool is_handled); - std::unique_ptr<LinuxInputMethodContext> context_; std::unique_ptr<LinuxInputMethodContext> context_simple_; diff --git a/chromium/ui/base/ime/linux/input_method_auralinux_unittest.cc b/chromium/ui/base/ime/linux/input_method_auralinux_unittest.cc index 02819b93d51..c7d29003977 100644 --- a/chromium/ui/base/ime/linux/input_method_auralinux_unittest.cc +++ b/chromium/ui/base/ime/linux/input_method_auralinux_unittest.cc @@ -271,19 +271,19 @@ class TextInputClientForTesting : public DummyTextInputClient { class InputMethodAuraLinuxTest : public testing::Test { protected: InputMethodAuraLinuxTest() - : factory_(NULL), - input_method_auralinux_(NULL), - delegate_(NULL), - context_(NULL), - context_simple_(NULL) { + : factory_(nullptr), + input_method_auralinux_(nullptr), + delegate_(nullptr), + context_(nullptr), + context_simple_(nullptr) { factory_ = new LinuxInputMethodContextFactoryForTesting(); LinuxInputMethodContextFactory::SetInstance(factory_); test_result_ = TestResult::GetInstance(); } ~InputMethodAuraLinuxTest() override { delete factory_; - factory_ = NULL; - test_result_ = NULL; + factory_ = nullptr; + test_result_ = nullptr; } void SetUp() override { @@ -303,13 +303,13 @@ class InputMethodAuraLinuxTest : public testing::Test { context_simple_->SetSyncMode(false); context_simple_->SetEatKey(false); - context_ = NULL; - context_simple_ = NULL; + context_ = nullptr; + context_simple_ = nullptr; delete input_method_auralinux_; - input_method_auralinux_ = NULL; + input_method_auralinux_ = nullptr; delete delegate_; - delegate_ = NULL; + delegate_ = nullptr; } LinuxInputMethodContextFactoryForTesting* factory_; |