Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(633)

Unified Diff: ui/base/ime/input_method_tsf.cc

Issue 149073009: Remove InputMethodTSF, TSFEventRouter, TSFTextStore, TSFBridge (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revert input_method_imm32 changes Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/ime/input_method_tsf.h ('k') | ui/base/ime/win/mock_tsf_bridge.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/ime/input_method_tsf.cc
diff --git a/ui/base/ime/input_method_tsf.cc b/ui/base/ime/input_method_tsf.cc
deleted file mode 100644
index 5e6de052e55a0f9e38fbbd772e253e3b3aee0139..0000000000000000000000000000000000000000
--- a/ui/base/ime/input_method_tsf.cc
+++ /dev/null
@@ -1,158 +0,0 @@
-// Copyright (c) 2013 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/base/ime/input_method_tsf.h"
-
-#include "ui/base/ime/text_input_client.h"
-#include "ui/base/ime/win/tsf_bridge.h"
-#include "ui/base/ime/win/tsf_event_router.h"
-
-namespace ui {
-
-class InputMethodTSF::TSFEventObserver : public TSFEventRouterObserver {
- public:
- TSFEventObserver() : is_candidate_popup_open_(false) {}
-
- // Returns true if we know for sure that a candidate window (or IME suggest,
- // etc.) is open.
- bool IsCandidatePopupOpen() const { return is_candidate_popup_open_; }
-
- // Overridden from TSFEventRouterObserver:
- virtual void OnCandidateWindowCountChanged(size_t window_count) OVERRIDE {
- is_candidate_popup_open_ = (window_count != 0);
- }
-
- private:
- // True if we know for sure that a candidate window is open.
- bool is_candidate_popup_open_;
-
- DISALLOW_COPY_AND_ASSIGN(TSFEventObserver);
-};
-
-InputMethodTSF::InputMethodTSF(internal::InputMethodDelegate* delegate,
- HWND toplevel_window_handle)
- : InputMethodWin(delegate, toplevel_window_handle),
- tsf_event_observer_(new TSFEventObserver()),
- tsf_event_router_(new TSFEventRouter(tsf_event_observer_.get())) {
- // In non-Aura environment, appropriate callbacks to OnFocus() and OnBlur()
- // are not implemented yet. To work around this limitation, here we use
- // "always focused" model.
- // TODO(ime): Fix the caller of OnFocus() and OnBlur() so that appropriate
- // focus event will be passed.
- InputMethodWin::OnFocus();
-}
-
-InputMethodTSF::~InputMethodTSF() {}
-
-void InputMethodTSF::OnFocus() {
- // Do not call baseclass' OnFocus() and discard the event being in
- // "always focused" model. See the comment in the constructor.
- // TODO(ime): Implement OnFocus once the callers are fixed.
-
- tsf_event_router_->SetManager(
- ui::TSFBridge::GetInstance()->GetThreadManager());
-}
-
-void InputMethodTSF::OnBlur() {
- // Do not call baseclass' OnBlur() and discard the event being in
- // "always focused" model. See the comment in the constructor.
- // TODO(ime): Implement OnFocus once the callers are fixed.
-
- tsf_event_router_->SetManager(NULL);
-}
-
-bool InputMethodTSF::OnUntranslatedIMEMessage(
- const base::NativeEvent& event, InputMethod::NativeEventResult* result) {
- LRESULT original_result = 0;
- BOOL handled = FALSE;
- // Even when TSF is enabled, following IMM32/Win32 messages must be handled.
- switch (event.message) {
- case WM_IME_REQUEST:
- // Some TSF-native TIPs (Text Input Processors) such as ATOK and Mozc
- // still rely on WM_IME_REQUEST message to implement reverse conversion.
- original_result = OnImeRequest(
- event.message, event.wParam, event.lParam, &handled);
- break;
- case WM_CHAR:
- case WM_SYSCHAR:
- // ui::InputMethod interface is responsible for handling Win32 character
- // messages. For instance, we will be here in the following cases.
- // - TIP is not activated. (e.g, the current language profile is English)
- // - TIP does not handle and WM_KEYDOWN and WM_KEYDOWN is translated into
- // WM_CHAR by TranslateMessage API. (e.g, TIP is turned off)
- // - Another application sends WM_CHAR through SendMessage API.
- original_result = OnChar(
- event.hwnd, event.message, event.wParam, event.lParam, &handled);
- break;
- case WM_DEADCHAR:
- case WM_SYSDEADCHAR:
- // See the comment in WM_CHAR/WM_SYSCHAR.
- original_result = OnDeadChar(
- event.message, event.wParam, event.lParam, &handled);
- break;
- }
- if (result)
- *result = original_result;
- return !!handled;
-}
-
-void InputMethodTSF::OnTextInputTypeChanged(const TextInputClient* client) {
- if (!IsTextInputClientFocused(client) || !IsWindowFocused(client))
- return;
- ui::TSFBridge::GetInstance()->CancelComposition();
- ui::TSFBridge::GetInstance()->OnTextInputTypeChanged(client);
-}
-
-void InputMethodTSF::OnCaretBoundsChanged(const TextInputClient* client) {
- if (!IsTextInputClientFocused(client) || !IsWindowFocused(client))
- return;
- ui::TSFBridge::GetInstance()->OnTextLayoutChanged();
-}
-
-void InputMethodTSF::CancelComposition(const TextInputClient* client) {
- if (IsTextInputClientFocused(client) && IsWindowFocused(client))
- ui::TSFBridge::GetInstance()->CancelComposition();
-}
-
-void InputMethodTSF::DetachTextInputClient(TextInputClient* client) {
- InputMethodWin::DetachTextInputClient(client);
- ui::TSFBridge::GetInstance()->RemoveFocusedClient(client);
-}
-
-bool InputMethodTSF::IsCandidatePopupOpen() const {
- return tsf_event_observer_->IsCandidatePopupOpen();
-}
-
-void InputMethodTSF::OnWillChangeFocusedClient(TextInputClient* focused_before,
- TextInputClient* focused) {
- if (IsWindowFocused(focused_before)) {
- ConfirmCompositionText();
- ui::TSFBridge::GetInstance()->RemoveFocusedClient(focused_before);
- }
-}
-
-void InputMethodTSF::OnDidChangeFocusedClient(TextInputClient* focused_before,
- TextInputClient* focused) {
- if (IsWindowFocused(focused) && IsTextInputClientFocused(focused)) {
- ui::TSFBridge::GetInstance()->SetFocusedClient(
- GetAttachedWindowHandle(focused), focused);
-
- // Force to update the input type since client's TextInputStateChanged()
- // function might not be called if text input types before the client loses
- // focus and after it acquires focus again are the same.
- OnTextInputTypeChanged(focused);
-
- // Force to update caret bounds, in case the client thinks that the caret
- // bounds has not changed.
- OnCaretBoundsChanged(focused);
- }
- InputMethodWin::OnDidChangeFocusedClient(focused_before, focused);
-}
-
-void InputMethodTSF::ConfirmCompositionText() {
- if (!IsTextInputTypeNone())
- ui::TSFBridge::GetInstance()->ConfirmComposition();
-}
-
-} // namespace ui
« no previous file with comments | « ui/base/ime/input_method_tsf.h ('k') | ui/base/ime/win/mock_tsf_bridge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698